@Override
public void onBindViewHolder(MyAdapter.MyViewHolder holder, int position) {
Log.d("position", "" + position);
holder.tv_arsId.setText(arrivalInfoArrayList.get(position).getArsId());
holder.tv_stNm.setText(arrivalInfoArrayList.get(position).getStNm());
}
arrivalInfoArrayList的大小为30,位置日志打印为0-30。
我知道发生此错误是因为索引以0开头,大小以1开头。
我尝试过这些。
1)
if (position > 0) {
holder.tv_arsId.setText(arrivalInfoArrayList.get(position - 1).getArsId());
holder.tv_stNm.setText(arrivalInfoArrayList.get(position - 1).getStNm());
}
2)
for ( int i = 0; i < arrivalInfoArrayList.size(); i++) {
holder.tv_arsId.setText(arrivalInfoArrayList.get(position).getArsId());
holder.tv_stNm.setText(arrivalInfoArrayList.get(position).getStNm());
}
但是没有用。位置日志仍打印0-30,并且发生错误。
我搜索了帖子,但不知道如何解决。
谢谢。
答案 0 :(得分:1)
在适配器中,您必须使用:
@Override
public int getItemCount() {
return arrivalInfoArrayList.size();
}