继承BaseQuickAdapter后,如何在适配器中获取当前点击item的position
Q
[CymChad/BaseRecyclerViewAdapterHelper]如何在适配器中获取当前点击item的position
1
A
回答
8
int position = helper.getLayoutPosition();
9
这个测试了,获取的position不正确。在convert方法里面调用int position = helper.getLayoutPosition();方法后,获取的position不是我点击项的position,每次都显示的是当前界面展示的最后item的position
0
2
@Override
protected void convert(BaseViewHolder helper, final CarItemBean item) {
currentPosition=helper.getLayoutPosition();
carCounterView=helper.getView(R.id.car_fragment_layout_item_carCounterView);
final EditText countEdit= (EditText) carCounterView.findViewById(R.id.et_count);
currentNumber=item.currentNumber;
countEdit.setText(String.valueOf(currentNumber));
countEdit.setSelection(countEdit.getText().toString().trim().length());
ImageView addImageView= (ImageView) carCounterView.findViewById(R.id.iv_count_add);
addImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("convert>>","currentPosition:"+currentPosition);
currentNumber++;
countEdit.setText(String.valueOf(currentNumber));
countEdit.setSelection(countEdit.getText().toString().trim().length());
item.currentNumber=currentNumber;
}
});
}
日志如下: 12-13 10:00:29.586 4863-4863/com.ylfood E/convert>>: currentPosition:3 12-13 10:00:32.236 4863-4863/com.ylfood E/convert>>: currentPosition:3 12-13 10:00:33.166 4863-4863/com.ylfood E/convert>>: currentPosition:3 12-13 10:00:34.386 4863-4863/com.ylfood E/convert>>: currentPosition:3 12-13 10:00:35.046 4863-4863/com.ylfood E/convert>>: currentPosition:3 12-13 10:00:35.686 4863-4863/com.ylfood E/convert>>: currentPosition:3
9
我的item布局里面还嵌套有一个子布局,我点击子布局组件时,获取position
2
你声明了成员变量currentPosition,所以会在最后一个item赋值给currentPosition,造成你说的问题
2
好的,已解决,谢谢
7
@zhanhon 感谢你的回复