Global object declaration in kotlin

夙愿已清 提交于 2021-01-27 04:39:11

问题


How to declare objects globally in kotlin like in java TextView tv;.

Or any method to call the same variable in different methods/functions.

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val textView: TextView = findViewById(R.id.texfirst) as TextView 

    textView.setOnClickListener {
        Toast.makeText(applicationContext,"Welcome to Kotlin ! $abc "+textView.text, Toast.LENGTH_LONG).show()
    }

    myFunction(textView)
}

fun myFunction(mtextv : TextView) {
    Toast.makeText(applicationContext,"This is  new  $abc "+mtextv.text, Toast.LENGTH_LONG).show()
}

See the above code I've separate function with parameter of TextView. I want the TextView object at second function. My question is: Is it possible to call function without parameter and am I able to get TextView object at myFunction().

Learning kotlin in android studio. Hope question is clear .


回答1:


The one you are mentioning is class property.

For your case, you need to declare a TextView in an Activity class and do the assignment by calling findViewById() in onCreate().

class YourActivity {

    lateinit var textView: TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        textView = findViewById(R.id.texfirst) as TextView
        //implementation
    }

    fun myFunction() {
        Toast.makeText(applicationContext, "This is  new $abc " + textView.text, Toast.LENGTH_LONG).show()
    }
}


来源:https://stackoverflow.com/questions/45751263/global-object-declaration-in-kotlin

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!