我在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
中删除的问题。
由于
答案 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();