3

我没有看到notifyDataSetChanged(). 重命名/修改工作,但不删除/删除。编辑:我正在测试 4.1.1 手机以及模拟器 API 16 (4.1)。

mylistfragment是我的自定义 ListFragment。

myadapter是使用 MyObject 的标准 ArrayAdapter。

mylist是 MyObject 的 ArrayList。

  1. 工作重命名操作:

    // rename the db item
    mylistfragment.mylist.get(i).name = "new name";
    (mylistfragment.myadapter).notifyDataSetChanged(); // this works
    

    列表视图正确更新以显示“新名称”。

  2. 不工作的删除操作:

    // 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 没有反映?

4

0 回答 0