全局对象声明在kotlin中

如何在java中像TextView tv;一样在kotlin中声明全局对象TextView tv;

或者任何方法在不同的方法/函数中调用相同的variables。

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

看到上面的代码我已经分开function与TextView参数。 我想在第二个function的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中的单身人士)