刷新列表视图重复内容
Refreshing listview duplicates content
我有一个用数组列表填充的列表视图。但是,无论何时我使用拉动刷新,列表视图中的数据都会重复,即使我在填充之前清除了 arraylist。这是我的数组列表
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,这样我的列表视图中就没有重复项了?感谢您的帮助
在列表适配器上调用 notifyDataSetChanged()。
删除此行 you = null;
myList.clear();
you.notifyDataSetChanged();
根据我看到的代码片段,我的印象是您使用的是 ArrayAdapter
。如果是 really.the 情况,为什么要在适配器 you
初始化后操作 myList
?
你所能做的就是打电话
you.clear()
// add your data with you.add(item)
我明白了。我也没有清除我用来填充 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);
}
});
我有一个用数组列表填充的列表视图。但是,无论何时我使用拉动刷新,列表视图中的数据都会重复,即使我在填充之前清除了 arraylist。这是我的数组列表
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,这样我的列表视图中就没有重复项了?感谢您的帮助
在列表适配器上调用 notifyDataSetChanged()。
删除此行 you = null;
myList.clear();
you.notifyDataSetChanged();
根据我看到的代码片段,我的印象是您使用的是 ArrayAdapter
。如果是 really.the 情况,为什么要在适配器 you
初始化后操作 myList
?
你所能做的就是打电话
you.clear()
// add your data with you.add(item)
我明白了。我也没有清除我用来填充 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);
}
});