我有一个列表,里面有列列表。但是,每当我使用拉刷新时,列表视图中的数据就会重复,即使我在填充之前清除了数组。这是我的排列表
List<TimeItems> myList = new ArrayList<TimeItems>();
我就是这样填充适配器的
for (int in = 0; in <= video.size() - 1; in ++) {
String a = vDancers.get(in);
String b = video.get(in);
String c = vName.get(in);
TimeLineItems item = new TimeLineItems(a,b,c);
myList.add(item);
}
Collections.sort(myList);
you = new MyVideoAdapter(getActivity(), myList,nLikes,nComments,nRepost);
//you.notifyDataSetChanged();
listView.setAdapter(you);
这就是我如何清除myList的拉式刷新。
listView.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
you = null;
nComments.clear();
nRepost.clear();
nRepost.clear();
myList.clear();
parseFetch();
listView.onRefreshComplete();
}
}, 5000);
}
});
您所在的位置是我的BaseAdapter,parseFetch()是我加载网络数据的方法。如何在刷新前完全清除myList,这样就不会在列表视图中复制?谢谢你的帮忙
发布于 2015-06-17 03:09:04
这样啊,原来是这么回事。我也没有清除用于填充myList的其他数组。在记录了各个阶段之后,我意识到这些数组是重复的,所以我也需要清除它们。这是最后一个work.Thanks @Lavkush2oct和@Vesko的帮助。
listView.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
you = null;
nComments.clear();
nRepost.clear();
nRepost.clear();
myList.clear();
vDancers.clear();
video.clear();
vName.clear();
you.notifyDataSetChanged();
parseFetch();
listView.onRefreshComplete();
}
}, 5000);
}
});
发布于 2015-06-15 02:32:49
根据我看到的代码片段,我觉得您使用的是ArrayAdapter
。如果这是really.the的情况,那么为什么在初始化适配器you
之后还要操作you
?
你能做的就是打电话
you.clear()
// add your data with you.add(item)
发布于 2015-06-15 02:25:41
调用列表适配器上的notifyDataSetChanged()。删除这一行you = null;
myList.clear(); you.notifyDataSetChanged();
https://stackoverflow.com/questions/30842686
复制