通过我的适配器执行一些简单的任务我遇到了麻烦。 我实现BaseAdapter的类,与ListView相关联。 在我创建了此适配器并向用户显示之后,如果发生某些事件,我将删除适配器中的所有元素,并添加新的适配器。
我在BaseAdapter中实现了这个方法:
public void clearAndBuild(ArrayList<PictureObject> new_pics, String some_text) {
pics.clear();
pics.addAll(new_pics);
this.hashtag = hashtag;
//do something else
}
(其中pics是一个包含放在ListView中的项的ArrayList)。在我的活动中,刷新所有我打电话:
adapter.clearAndBuild(pics, tag);
adapter.notifyDataSetChanged();
但它不起作用。 在我调用该方法之后,listView中的旧项被删除,但是没有显示新的项(我得到一个空列表视图)。 怎么了?
答案 0 :(得分:0)
唯一的原因可能是您正在重复使用pics
和new_pics
的相同引用。在new_pics
pics
答案 1 :(得分:0)
你可以这样做:
public void clearAndBuild(ArrayList<PictureObject> new_pics, String some_text) {
pics. = new ArrayList<PictureObject>(new_pics);
this.hashtag = hashtag;
//do something else
}