一个android列表的适配器数据异步加载的问题

在Android应用中,当ListView的适配器数据在后台线程被修改时,如果不正确地通知ListView,会导致程序崩溃。问题表现为连续快速点击列表项后出现‘异常终止’。解决方法是在线程开始前禁用ListView,数据更新并通知适配器后重新启用,确保UI操作在主线程进行,从而避免适配器内容改变未通知ListView的情况。
摘要由CSDN通过智能技术生成

一个android列表的适配器数据异步加载的问题


问题现象:

当点击一个ListView的子项,等更新ListView完成时,再点击一下ListView的子项,程序运行良好;

当点击一个ListView的子项,还没来得及更新ListView时,再点击一下ListView的子项,程序弹出“异常终止”提示框并崩溃。

出错Log:

The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread。

程序背景:

类InfoAdapter继承于BaseAdapter,其数据成员ArrayList<Info>用于存储ListView的数据。类LoadInfoThread继承于Thread,用于收集ListView的数据,设置ArrayList<Info>实例。在线程LoadInfoThread中调用notifyDataSetChanged函数通知ListView更新界面。

参考网上的文章:

1、《

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值