Kotlin:由于textView,Android应用程序意外停止

时间:2017-06-11 16:39:10

标签: android android-studio kotlin

这是一个我正在运行的简单代码

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代码的注释时,应用程序停止工作,没有那些行,它可能是什么原因?

3 个答案:

答案 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来保护潜在的小部件错误和代码最小化。