这是一个我正在运行的简单代码
class Second : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//val intent = intent.getStringExtra("textValue").toString()
val text: TextView
//text = findViewById(R.id.textView) as TextView // this statement
//text.text = "New Text"
setContentView(R.layout.second)
}
}
这是textView代码
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Second Activity!" />
现在当我取消对textView代码的注释时,应用程序停止工作,没有那些行,它可能是什么原因?
答案 0 :(得分:2)
您在设置布局之前调用findViewById
,将setContentView
移动到函数的开头,如下所示:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.second)
//val intent = intent.getStringExtra("textValue").toString()
val text: TextView
text = findViewById(R.id.textView) as TextView // this statement
text.text = "New Text"
}
答案 1 :(得分:2)
作为commented,在setContentView
之后移动super.onCreate
,否则XML
附加activity
布局无法找到视图加上您想要调用{ {1}}尽快减少布局初始化延迟
setContentView
答案 2 :(得分:0)
在布局设置后,让你的Android小部件实例化/初始化,换句话说就是setContentView()。虽然我强烈建议您使用Kotlin Android Extensions plugin来保护潜在的小部件错误和代码最小化。