【问题标题】:Clicking a textview to change fragment单击文本视图以更改片段
【发布时间】:2017-11-05 23:18:23
【问题描述】:

我正在尝试使用 Kotlin 构建我的第一个 android 应用程序,但我遇到了一个非常简单的情况。我正在使用 Kotlin android 扩展,我得到一个空指针异常。

<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()
    }

为了摆脱崩溃,但我仍然不确定为什么对象为 null 并且单击时不执行任何操作。如果有任何改变,所有这些都在一个片段中完成。

【问题讨论】:

    标签: android android-fragments kotlin kotlin-android-extensions kotlin-extension


    【解决方案1】:

    您可能获得 NPE 的一个原因是您在错误的生命周期方法中使用它我在 onCreateView 中使用它时遇到了类似的错误,而您应该只在 onViewCreated 中使用 Kotlin android 扩展。

    【讨论】:

    • 感谢您将其添加到onActivityCreated 时有效!所以我不能在其他任何地方使用它们是你在说什么?还是不在onCreateView
    • 你可以在片段视图层次结构已经完全创建的任何生命周期中使用Kotlin android扩展,第一个生命周期方法和推荐的方法是onViewCreated
    猜你喜欢
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多