我没有看到notifyDataSetChanged()
. 重命名/修改工作,但不删除/删除。编辑:我正在测试 4.1.1 手机以及模拟器 API 16 (4.1)。
mylistfragment
是我的自定义 ListFragment。
myadapter
是使用 MyObject 的标准 ArrayAdapter。
mylist
是 MyObject 的 ArrayList。
工作重命名操作:
// rename the db item mylistfragment.mylist.get(i).name = "new name"; (mylistfragment.myadapter).notifyDataSetChanged(); // this works
列表视图正确更新以显示“新名称”。
不工作的删除操作:
// delete from db mylistfragment.mylist.get(i).name = "DELETED"; mylistfragment.mylist.remove(i); (mylistfragment.myadapter).notifyDataSetChanged(); // this does NOT work
我看到该项目的名称更改为“DELETED”,这当然意味着我没有看到该项目消失。
创建 Fragment 时,我的 ArrayList 是从 db 构建的,因此如果我重新创建 Fragment,该项目将消失。但是,当我告诉 ArrayAdapter 更新视图时,我希望该项目消失。
有没有人遇到过这个问题,或者知道为什么从 arraylist 中删除有效但 ListView 没有反映?