我正在使用Kotlin制作一个Android应用程序,但在尝试使用Kotlin的Android扩展程序访问布局元素时,我一直得到NullPointerException
。代码有点复杂,所以我将尝试用一个简单的例子来解释这个问题。
假设我有一个带有按钮和textView的布局second_layout.xml
:
<LinearLayout ...>
<TextView
android:id="@+id/textView"
..../>
<Button
android:id="@+id/button"
android:onClick="onButtonClicked"
... />
</LinearLayout>
在主要活动中,我想在单击按钮时更改textView文本:
import kotlinx.android.synthetic.main.second_layout.*
override fun onCreate(savedInstanceState: Bundle?) {
...
}
fun onButtonClicked(view: View) {
textView.text = "TextView text has changed"
}
现在,当我单击按钮时,Kotlin会抛出一个NullPointerException,显然textView
属性为null。我希望上面的代码是清楚的。
有没有人知道发生了什么?我做错什么了吗?感谢。