我正在构建一个应用程序,该应用程序根据与服务器通信的 Futuretask 线程动态填充/取消填充数组列表。
问题是,当我将新对象添加到我的数组适配器中时,我以任何方式调用notifyDataSetChanged或setNotifyOnChange
(例如添加项目后,我还尝试制作一些调用notifyDataSetChanged的postadd函数,甚至尝试在适配器构造函数中添加setNotifyOnChange,或者在添加之前添加(adapter.setNotifyOnChange(true)))
在这个 Futuretask 中,它只是冻结线程并导致应用程序故障。当我用手指滑动调用 ArrayAdapter 的 getView() 时,如果没有 notifyonchange,它可以工作,但这是不受欢迎的行为。
注意:我通过静态变量引用访问适配器。
注意#2:我不认为一遍又一遍地创建新适配器是一个明智的选择。
/编辑:
我的删除方法如下所示:
public void remove (int itemid) {
for (ContactItem i : items)
if (i.ID == itemid)
items.remove(i);
}
(它最后挂在最后一个pharantesis)