0

唤醒手机并触摸显示屏后,我收到以下错误消息:

java.lang.IllegalStateException:适配器的内容已更改,但 ListView 没有收到通知。确保适配器的内容不是从后台线程修改的,而只是从 UI 线程修改的。[在 ListView(2131230724, class eu.erikw.PullToRefreshListView) 和 Adapter(class 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 行做错了什么?此外,由于这是一个扩展列表视图的类,我无法使用

activity.runOnUiThread(new Runnable(){

// runnable code here.

});

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

4

0 回答 0