Rufen Sie die Methode von Kotlin-Klasse

Habe ich ein util Kotlin-Klasse, wo ich die Symbolleiste Titel, ein-oder ausblenden der Symbolleiste hängt von der fragment:

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
    }
}

wie nennen showToolbar(...) vom Fragment?
Ich habe gerade versucht MyToolbarUtils.showToolbar(..) aber es kann nicht möglich sein,

nur einen Weg, den ich entdecke, lautet:

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

aber es muss doch eine bessere Möglichkeit, das zu tun..

Tut Kotlin mit statischen Methoden? Wenn nicht, was Sie gezeigt haben, macht Sinn
Wenn alle diese arbeiten nur mit einer Klasse MainActivity warum sind Sie nur nicht die Methoden, die für diese Klasse?
Sie fragte eine xy-Frage ... Sie entschied sich für eine Antwort zu einem Programmier-problem und dann um Hilfe gebeten, mit, dass bereits beschlossen beantworten. Aber in diesem Fall, Ihre Antwort ist nicht richtig überhaupt. Idiomatische Kotlin wird nicht verwendet Statik-oder Objekt-Deklarationen in einem Fall wie diesem, aber verwenden Sie stattdessen stackoverflow.com/a/39499145/3679676

InformationsquelleAutor Stepan | 2016-09-14

Schreibe einen Kommentar