问题
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