Нажав на текстовое представление, чтобы изменить фрагмент

Я пытаюсь создать свое первое приложение для 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,

Другие вопросы по тегам