开发的时候 遇到 java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
这个异常有时候会有,有时候正常 不太好捕捉
猜测 已经把数据给了list,然后让主线程去显示;接着后台继续获取数据。那也许有可能主线程还是没刷新完,后台又把新数据给过来了
所以 猜测 是刷新头部出现的问题
也就是
news.clear();
news.addAll(0, refreshNewData);
newsAdapter.notifyDataSetChanged();
这里出现的问题
所以调整为:
news.clear();
news.addAll(localNews);
newsAdapter=new NewsListAdapter(activity, news);
mnews_listview.setAdapter(newsAdapter);
newsAdapter.notifyDataSetChanged();
因为有headview 所以还是有问题 这个时候调整了下headview
变成
news.clear();
news.addAll(localNews);
newsAdapter=new NewsListAdapter(activity, news);
if(mnews_listview.getHeaderViewsCount()>0){
mnews_listview.removeHeaderView(viewGallery);
}
mnews_listview.addHeaderView(viewGallery);
mnews_listview.setAdapter(newsAdapter);
newsAdapter.notifyDataSetChanged();
ok 没问题了
应该是异步线程没有及时更新数据造成的 在此备注下
本文详细介绍了在Android开发中遇到的Java.lang.IndexOutOfBoundsException异常的解决方案,该异常通常由异步线程未及时更新数据引起。通过调整数据处理逻辑,如在数据清空后重新设置适配器并通知数据变更,有效解决了问题。
1886

被折叠的 条评论
为什么被折叠?



