从列表中删除项时,ArrayAdapter.notifyDataSetChanged()不起作用

时间:2013-05-26 09:26:44

标签: android

我没有看到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
    

    listview正确更新以显示“新名称”。

  2. 无效删除操作:

    // delete from db
    mylistfragment.mylist.get(i).name = "DELETED";
    mylistfragment.mylist.remove(i);
    (mylistfragment.myadapter).notifyDataSetChanged(); // this does NOT work
    

    我看到该项目的名称变为“DELETED”,这当然意味着我没有看到该项目消失。

  3. 我的ArrayList是在创建Fragment时从db构建的,所以如果我重新创建Fragment,项目就会消失。但是,当我告诉ArrayAdapter更新视图时,我希望该项目消失。

    有没有人遇到过这个问题,或者想知道为什么从arraylist中删除有效但ListView没有反映出来?

0 个答案:

没有答案