[문제상황]
class MainActivity() {
val a = findViewById(R,id.btn)
fun onCreat() {
a.setOnclick
}
}
이렇게 하면 Nullpoint 오류가 난다. 기본적으로 xml의 객체화는 onCreate()가 호출이 되면서 이루어진다.
하지만 onCreate() 이전에 선언을 하게 되버리면 레이아웃이 객체화가 되기 전에 레이아웃을 참조하고 있었기 때문에 null 값을 참조하게 된다.
[해결]
val a 를 onCreat 안에 쓰던가, 아니면 lateinit으로 지연초기화.
class MainActivity() {
lateinit val a:<Button>
fun onCreat() {
a = findVIew~
}
}