我在RecyclerView
内有一个SwipeRefreshLayout
,它将从我的php服务器获取Post
JSON。
现在的情况是,我的数据库中只有5 post
。所以当我第一次启动RecyclerView
时,它显示了5 post
,这没问题
现在的主要问题是,每次我拉SwipeRefreshLayout
时,它都会拉{* 1}}再次显示在post
中,因此现在RecyclerView
内共有10个项目1}},并且一个特定的相同帖子出现2次。当我再次放置时,它将再次出现,所以现在总共15个项目RecyclerView
出现3次。所以这将显示无限次。
我尝试了这个问题的answer,这是覆盖以下2个方法,但同样的项目仍然出现。
post
所以我想要的是,如果数据库中只有5 @Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return position;
}
可用,它只会在posts
中显示5 posts
。当用户提取RecyclerView
时不会再显示5个相同的SwipeRefreshLayout
,但不要再告诉用户任何新帖子。
我该如何解决这个问题?
答案 0 :(得分:0)
尝试在读取JSON之前从数组中删除所有项目
答案 1 :(得分:0)
在用户提取adpater
时清除swiper
并重新加载新数据以避免重复
尝试使用此方法清除数据:
public void clear() {
int size = this.myList.size();
if (size > 0) {
for (int i = 0; i < size; i++) {
this.myList.remove(0);
}
this.notifyItemRangeRemoved(0, size);
}
}