全局对象声明在kotlin中
如何在java中像TextView tv;
一样在kotlin中声明全局对象TextView tv;
。
或者任何方法在不同的方法/函数中调用相同的变量。
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() }
看到上面的代码我已经分开功能与TextView
参数。 我想在第二个功能的TextView
对象。 我的问题是:是否有可能调用没有参数的函数,我可以在myFunction()
获得TextView
对象。
在android工作室学习kotlin。 希望的问题是明确的。
你提到的是类属性 。
为了您的情况,您需要在Activity
类中声明一个TextView
,并通过在onCreate()
调用findViewById()
来完成分配。
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() } }
你是什么意思“全球”? 您提供的代码与Kotlin中的var tv: TextView
相匹配,您可以在您的Java代码中的相同位置使用它。
你是说公开课吗? 还是你的意思是单身? 对于公开的课程,你只需要声明它们是公开的(在Kotlin中它们是默认公开的,所以你不需要做任何事情而不是声明它们)。
对于单身人士,你可以看看对象声明(Kotlin中的单身人士)