android adapter 布局,android – RecyclerView Adapter类中的多个布局视图

博主有3个不同部分,每个部分10个项目,试图为每个部分显示不同视图,但都显示layout_1.xml布局视图。博主贴出SectionListDataAdapter代码,询问代码错误所在及遗漏之处,代码涉及RecyclerView.Adapter的相关实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是我取得的成就? 3个不同的部分,每个部分10个不同的项目.

这是我正在关注的教程link,下面是截图:

2c5df5a2da85cd40c7d662379e15c15d.png

试图为每个部分显示不同的视图.喜欢:

对于第1节(layout_1.xml)

对于第2节(layout_2.xml)

对于第3节(layout_3.xml)

但是在每个Section中显示layout_1.xml的布局视图……(第1,2,3节)

我可以知道我的代码在哪里犯了错误,我错过了什么?

public class SectionListDataAdapter extends RecyclerView.Adapter {

private ArrayList itemsList;

private Context mContext;

public SectionListDataAdapter(Context context, ArrayList itemsList) {

this.itemsList = itemsList;

this.mContext = context;

}

@Override

public SingleItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {

switch (i) {

case 0:

View viewONE = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_1, null, false);

SingleItemRowHolder rowONE = new SingleItemRowHolder(viewONE);

return rowONE;

case 1:

View viewTWO = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_2, null, false);

SingleItemRowHolder rowTWO = new SingleItemRowHolder(viewTWO);

return rowTWO;

case 2:

View viewTHREE = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_3, null, false);

SingleItemRowHolder rowTHREE = new SingleItemRowHolder(viewTHREE);

return rowTHREE;

}

return null;

}

@Override

public void onBindViewHolder(SingleItemRowHolder holder, int i) {

SingleItemModel singleItem = itemsList.get(i);

holder.tvTitle.setText(singleItem.getName());

}

@Override

public int getItemCount() {

return (null != itemsList ? itemsList.size() : 0);

}

public class SingleItemRowHolder extends RecyclerView.ViewHolder {

protected TextView tvTitle;

protected ImageView itemImage;

public SingleItemRowHolder(View view) {

super(view);

this.tvTitle = (TextView) view.findViewById(R.id.tvTitle);

this.itemImage = (ImageView) view.findViewById(R.id.itemImage);

view.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(v.getContext(), tvTitle.getText(), Toast.LENGTH_SHORT).show();

}

});

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值