Android Listview项目删除但适配器未设置且项目仍在显示?

时间:2013-09-28 18:54:01

标签: android android-listview

我在Button点击

上有此代码

我正在从ListView删除项目,但问题是它仍在适配器上显示。

restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getUrl());
                     restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getName());
    DisplayDataAdapter adapter = new DisplayDataAdapter(getApplicationContext());           
    adapter.notifyDataSetChanged();
     listView.setAdapter(adapter);

任何想法可能是项目没有从对象类ArrayList中删除的问题。

由于

3 个答案:

答案 0 :(得分:2)

切换顺序:

adapter.notifyDataSetChanged(); 
listView.setAdapter(adapter);

要:

listView.setAdapter(adapter);
adapter.notifyDataSetChanged();

答案 1 :(得分:1)

每次更改数据集并将新的Adapter设置为Adapter时,您似乎正在创建新的ListView。你不必那样做。您只需对数据集进行更改,然后在notifyDataSetChanged()上致电Adapter

所以你的代码应该是这样的:

restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getUrl()); 
restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getName());
adapter.notifyDataSetChanged();     

答案 2 :(得分:1)

这是问题

 DisplayDataAdapter adapter = new DisplayDataAdapter(getApplicationContext()); 

您正在创建一个新的适配器。创建一个全局值适配器并尝试这样:

restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getUrl());
                 restaurants_bean_arr.remove(restaurants_bean_arr.get(item_position).facilities.get(item_position).getName());
 adapter.notifyDataSetChanged();