如题,网络获取到数据,听说只能在handleMessage()中更新数据源和刷新listview,才不会导致adapter已更新而listview没有收到通知的异常?
如题,网络获取到数据,听说只能在handleMessage()中更新数据源和刷新listview,才不会导致adapter已更新而listview没有收到通知的异常?
接收到网络数据后,利用handler发送Message对象,再重写handleMessage()方法接收,在该方法中设置listview的adapter。希望有帮到你。
注意setList
和notifyDataSetChanged
都在主线程调用。如果setList()
有耗时操作,建议把异步线程处理完数据,再setList
BaseAdapter adapter;
...
// 网络请求回调时,调用此方法
runOnUiThread(new Runnable() {
@Override
public void run() {
List<Data> list = ...
adapter.setList(list);
adapter.notifyDataSetChanged();
}
});
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.1k 阅读
1 回答1.3k 阅读
1.3k 阅读
额 没看明白 建议上代码