怎么把网络获取到的数据传递到handleMessage()中去?以便更新listview

如题,网络获取到数据,听说只能在handleMessage()中更新数据源和刷新listview,才不会导致adapter已更新而listview没有收到通知的异常?

阅读 4.6k
3 个回答

额 没看明白 建议上代码

接收到网络数据后,利用handler发送Message对象,再重写handleMessage()方法接收,在该方法中设置listview的adapter。希望有帮到你。

注意setListnotifyDataSetChanged都在主线程调用。如果setList()有耗时操作,建议把异步线程处理完数据,再setList

BaseAdapter adapter;
...

// 网络请求回调时,调用此方法
runOnUiThread(new Runnable() {
            @Override
            public void run() {
                
                List<Data> list = ...
                
                adapter.setList(list);
                adapter.notifyDataSetChanged();
            }
        });
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题