listview 遇到问题java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

开发的时候 遇到 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 没问题了 

应该是异步线程没有及时更新数据造成的 在此备注下

 

转载于:https://www.cnblogs.com/kukum/p/4626658.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值