Нажав на текстовое представление, чтобы изменить фрагмент
Я пытаюсь создать свое первое приложение для Android, используя Kotlin, но я застрял в очень простой ситуации. Я использую расширения Android Kotlin и получаю исключение нулевого указателя.
<TextView
android:id="@+id/tvGoToRegisterFrag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btn_sign_in"
android:text="@string/haven_t_registered_yet"
android:paddingTop="10dp"
android:textColor="@color/colorAccent"
android:layout_centerHorizontal="true"/>
С этим я использовал
tvGoToRegisterFrag.setOnClickListener {
goToRegister()
}
Я знаю, что могу использовать
tvGoToRegisterFrag?.setOnClickListener {
goToRegister()
}
Чтобы избавиться от сбоев, но все же я не уверен, почему объект нулевой и ничего не делает при нажатии. Все это делается фрагментом, если это что-то меняет.
1 ответ
Решение
Одна из причин, по которой вы можете получить NPE, заключается в том, что вы используете его в неправильном методе жизненного цикла. У меня была похожая ошибка при его использовании в onCreateView
вместо этого вы должны использовать только расширения Android Kotlin в onViewCreated
,