今天在对RecyclerView中的组件进行分别监听时,出现了这样的错误
android java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
附上代码
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
final MomentsAdapter.MyHolder holder = new MomentsAdapter.MyHolder(view);
holder.img1.setOnClickListener((View v) -> {
int position = holder.getAdapterPosition();
System.out.println(position);
});
return new MyHolder(view);//66666666666
}
通过测试点击查看发现一直获取到的是-1,所以会报数组越界错误/
看了半天《第一行代码》才知道问题所在
解决方案:
将上面的
return new MyHolder(view);//66666666666
替换为
return holder;
解决