繁体   English   中英

android:onClick =“”导致IllegalStateException

[英]android:onClick=“” causes IllegalStateException

我正在使用.xml视图的onClick方法来捕获.java类上的click事件。

通常运行良好。 但是,当我的Activity在后台长时间运行时,稍后进入主线程并且有人单击该视图,它将返回以下异常:

java.lang.NullPointerException
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3608)
at android.view.View.performClick(View.java:4101)
at android.view.View$PerformClick.run(View.java:17087)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)

这是我的view.xml:

<ToggleButton
    android:id="@+id/fragment_main_colonies_tbFollow"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:checked="false"
    android:onClick="onClickToggleColonyFollow"
    android:textOff="@string/main_colony_follow"
    android:textOn="@string/main_colony_follow" />

这是我的fragment.java:

public void onClickToggleColonyFollow(View view) {
    ToggleButton near = (ToggleButton)getView().findViewById(R.id.fragment_main_colonies_tbNear);
    ToggleButton follow = (ToggleButton) view;

    if(follow == null || near == null) return;

    if(!near.isChecked() && !follow.isChecked()) {
        follow.setChecked(true);
        return;
    }

    near.setChecked(false);
    showColoniesNear = false;
}

我做错了什么?

当您使用android:onClick属性时,它会尝试通过反射查找方法。 我不清楚它到底在哪里尝试执行此操作,但是它似乎一直都无法正常工作,也许它只是在视图附加到的Activity中寻找方法。 我总是喜欢使用view.setOnClickListener()自己显式设置view.setOnClickListener()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM