唤醒手机并触摸显示屏后,出现以下错误消息:
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.
});
所以我的问题:我该如何修复它?目前我不知道......