扫码关注官方订阅号
如题,网络获取到数据,听说只能在handleMessage()中更新数据源和刷新listview,才不会导致adapter已更新而listview没有收到通知的异常?
认证高级PHP讲师
额 没看明白 建议上代码
接收到网络数据后,利用handler发送Message对象,再重写handleMessage()方法接收,在该方法中设置listview的adapter。希望有帮到你。
注意setList和notifyDataSetChanged都在主线程调用。如果setList()有耗时操作,建议把异步线程处理完数据,再setList
setList
notifyDataSetChanged
setList()
BaseAdapter adapter; ... // 网络请求回调时,调用此方法 runOnUiThread(new Runnable() { @Override public void run() { List<Data> list = ... adapter.setList(list); adapter.notifyDataSetChanged(); } });
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
额 没看明白 建议上代码
接收到网络数据后,利用handler发送Message对象,再重写handleMessage()方法接收,在该方法中设置listview的adapter。希望有帮到你。
注意
setList和notifyDataSetChanged都在主线程调用。如果setList()有耗时操作,建议把异步线程处理完数据,再setList