我有一个util Kotlin类,我在其中设置工具栏标题,隐藏或显示工具栏取决于片段:

class MyToolbarUtils() {

    fun hideToolbar(activity: Activity) {
        (activity as MainActivity).supportActionBar!!.hide()
    }

    fun showToolbar(activity: Activity, tag: String) {
        setToolbarTitle(tag, activity)
        (activity as MainActivity).supportActionBar!!.show()
    }

    fun setToolbarTitle(tag: String, activity: Activity) {
        var title = ""
        when (tag) {
            "Main_fragment" -> title = activity.resources.getString(R.string.Main_screen)
            "Add_note" -> title = activity.resources.getString(R.string.Add_note)
        }
        activity.title = title
    }
}

how to call showToolbar(...) from Fragment? I just tried MyToolbarUtils.showToolbar(..) but it can not be possible

only one way I discover is:

val setToolbarTitle = MyToolbarUtils()
setToolbarTitle.showToolbar(activity, tag)

but there must be better way to do that..

推荐答案

class转换为object,其工作原理与java静态方法类似.

你可以在这里获得更多信息:https://kotlinlang.org/docs/reference/object-declarations.html#object-declarations

Kotlin相关问答推荐

用普通Kotlin理解Gradle的Kotlin DSL'""

在Kotlin中,我是否可以访问已知的WHEN子句值?

数据流弹性模板失败,出现错误&未知非复合转换urn";

如何在Docker中使用Selenium和chromedriver?

列表在 android WebView 中没有正确迭代

kotlin 模式匹配如何像 scala 一样工作

init中的NPE抽象函数变量

将 java Optional 转换为 Kotlin Arrow Option

Kotlin - 协程未按预期执行

在jetpack compose中将默认方向设置为横向?

如何为 Kotlin 中的每个循环设置以避免越界异常

为什么 android studio 不为所有安全参数生成代码?

Kotlin DataBinding 将静态函数传递到布局 xml

如何处理 Kotlin 中的异常?

@uncheckedVariance 在 Kotlin 中?

Jacoco在Gradle 7.0.2和Kotlin 1.5.10上失败

Kapt不适用于Android Studio 3.0中的AutoValue

参数不匹配;SimpleXML

Kotlin的BiMap/2-way hashmap

导航架构组件 - 未生成 DestinationFragmentArgs