多条目加载的适配器
public class RVAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private List<Beannes.DataBean.Ad5Bean> ad5;
public RVAdapter(Context context, List<Beannes.DataBean.Ad5Bean> ad5) {
this.context = context;
this.ad5 = ad5;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == 1) {
View view = View.inflate(context, R.layout.item_rv, null);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
} else {
View view = View.inflate(context, R.layout.item2_rv, null);
ViewHolder2 viewHolder = new ViewHolder2(view);
return viewHolder;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof ViewHolder){
ViewHolder vh1= (ViewHolder) holder;
vh1.img.setImageURI(Uri.parse(ad5.get(position).getImage()));
vh1.tvDescription.setText(ad5.get(position).getTitle());
}else if (holder instanceof ViewHolder2){
ViewHolder2 vh2= (ViewHolder2) holder;
vh2.tvTitle.setText(ad5.get(position).getTitle());
}
}
@Override
public int getItemViewType(int position) {
if (position % 2 == 0) {
return 1;
} else {
return 2;
}
}
@Override
public int getItemCount() {
return ad5.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
private final TextView tvDescription;
private final ImageView img;
public ViewHolder(View itemView) {
super(itemView);
img = (ImageView) itemView.findViewById(R.id.img);
tvDescription = (TextView) itemView.findViewById(R.id.tv_description);
}
}
class ViewHolder2 extends RecyclerView.ViewHolder{
private final TextView tvTitle;
public ViewHolder2(View itemView) {
super(itemView);
tvTitle = (TextView) itemView.findViewById(R.id.tv_title);
}
}
}main设置适配器 List<Beannes.DataBean.Ad5Bean> ad5 = data.getData().getAd5();
LinearLayoutManager manager = new LinearLayoutManager(this);
rv.setLayoutManager(manager);
RVAdapter rvAdapter = new RVAdapter(MainActivity.this, ad5);
rv.setAdapter(rvAdapter);
本文介绍了一种实现多类型数据加载的RecyclerView适配器的详细过程,通过定义不同的ViewHolder来区分不同的视图类型,并根据位置返回相应的布局类型。
2409

被折叠的 条评论
为什么被折叠?



