listview更新数据时报异常

04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime: FATAL EXCEPTION: main
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime: Process: com.zhyq.movefilelib, PID: 13822
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime: java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. Make sure your adapter calls notifyDataSetChanged() when its content changes. [in ListView(-1, class com.zhyq.movefilelib.base.ScrollOverListView) with Adapter(class android.widget.HeaderViewListAdapter)]
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.widget.ListView.layoutChildren(ListView.java:1555)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.widget.AbsListView.onTouchUp(AbsListView.java:3670)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.widget.AbsListView.onTouchEvent(AbsListView.java:3454)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at com.zhyq.movefilelib.base.ScrollOverListView.onTouchEvent(ScrollOverListView.java:321)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.View.dispatchTouchEvent(View.java:7714)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2210)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1945)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.app.Activity.dispatchTouchEvent(Activity.java:2475)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.View.dispatchPointerEvent(View.java:7894)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3995)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3874)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3435)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3485)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3454)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3561)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3462)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3618)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3435)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3485)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3454)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3462)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3435)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5580)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5560)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5531)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime:     at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5660)
04-07 10:28:48.673 13822-13822/com.zhyq.movefilelib E/AndroidRuntime: at android.view.InputEventRec

04-07 10:28:49.303 8704-8704/com.zhyq.movefilelib E/UpdateVersionActivity: syntax error, expect {, actual error, pos 0





最近在改版程序时,发现先前人留下的程序是各种坑啊。。。竟然爆出来了这个BUG。。。。

看代码:

data.addAll(dataMsg);
adapter.notifyDataSetChanged();    
获取到数据后,直接data添加获取到的最新数据。。。但是data还是初始化adapter时传入的。。。data数据变化时,没有更新adapter里面的data啊。。。直接通知adapter更新还有屁用啊。。。。我觉着这个是一个非常低级的错误!类似的坑还有很多!

所以在adapter里添加一个新的方法即可:

public void refreshData(List<? extends Map<String, ?>> data) {
    if(data!=null)
    {
        mData = data;
    }
    notifyDataSetChanged();
}
添加了refreshdata之后

if (adapter != null) {
    data.addAll(dataMsg);
    adapter.refreshData(data);
}
这样就OK了。。。。

继续填坑之路~2016~~~加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值