super.onTouchEvent(event)中的java.lang.IllegalStateException

时间:2013-10-23 17:29:42

标签: android ontouchevent illegalstateexception

唤醒手机并触摸显示屏后,出现以下错误消息:

java.lang.IllegalStateException:适配器的内容已更改,但ListView未收到通知。确保不从后台线程修改适配器的内容,而只是从UI线程修改。 [在ListView(2131230724,类eu.erikw.PullToRefreshListView)中使用Adapter(类android.widget.HeaderViewListAdapter)]

所以,我已经在代码中找到了可以代表此错误消息的位置:

public class PullToRefreshListView extends ListView{
    ...other code...


    @Override
    public boolean onTouchEvent(MotionEvent event){
        // it also crashes although I make this check
        if( !(  Looper.getMainLooper().equals(Looper.myLooper()) ) ) 
                return true;

        ... other code in this method...

        return super.onTouchEvent(event); <-- it crashes exactly here at the end of the whole method
    }

所以,我检查我是否在使用uithread并且它仍然崩溃了?所以我可能在这个if行中做错了什么? 另外,由于这是一个扩展listview的类,我无法使用

activity.runOnUiThread(new Runnable(){

// runnable code here.

});

所以我的问题:我该如何修复它?目前我不知道......

0 个答案:

没有答案