RecyclerView 项目重复且不断变化 [英] RecyclerView items duplicate and constantly changing
本文介绍了RecyclerView 项目重复且不断变化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
发生了什么:
列表 (RecyclerView)
在我滚动时混淆了数据.
The list (RecyclerView)
is mixing up the data when I scroll.
I.E 当我向下滚动后向上滚动时,某些列表项会重复,无法显示正确的内容.
I.E when I scroll back up after scrolling down, some of the list items are repeated, not displaying proper content.
package jamesnguyen.newzyv2.UI_update;
import android.content.Context;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
import jamesnguyen.newzyv2.R;
import jamesnguyen.newzyv2.RSS_Processcors.RssItem;
public class RVAdapter extends RecyclerView.Adapter<RVAdapter.FeedViewHolder> {
private static List<RssItem> items = null;
private static Context context;
public RVAdapter(Context context, List<RssItem> items) {
this.items = items;
this.context = context;
}
public static List<RssItem> getItems() {
return items;
}
@Override
public RVAdapter.FeedViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item, viewGroup, false);
return new FeedViewHolder(v);
}
@Override
public void onBindViewHolder(RVAdapter.FeedViewHolder holder, int position) {
FeedViewHolder.getTitle().setText(items.get(position).getTitle());
FeedViewHolder.getPubDate().setText(items.get(position).getPubDate());
//FeedViewHolder.getDescription().setText(items.get(position).getDescription());
}
@Override
public long getItemId(int id) {
return id;
}
@Override
public int getItemCount() {
return items.size();
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
public static class FeedViewHolder extends RecyclerView.ViewHolder {
private static CardView cv;
private static TextView title;
private static TextView pubDate;
private static TextView description;
FeedViewHolder(View itemView) {
super(itemView);
cv = (CardView) itemView.findViewById(R.id.cv);
title = (TextView) itemView.findViewById(R.id.title);
pubDate = (TextView) itemView.findViewById(R.id.pubDate);
//description = (TextView) itemView.findViewById(R.id.description);
}
public static TextView getTitle() {
return title;
}
public static TextView getPubDate() {
return pubDate;
}
public static TextView getDescription() {
return description;
}
}
}
我相信 RecyclerView 的回收过程可能需要做一些工作,但我试过的任何东西都没有效果.
I believe maybe some works have to be done with the recycling process of RecyclerView but nothing i tried seesm to work.
推荐答案
done .
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return position;
}
这篇关于RecyclerView 项目重复且不断变化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文