วิธีง่ายๆของฉัน
Make a position holder:
public class PositionHolder {
private int position;
public PositionHolder(int position) {
this.position = position;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
}
เพียงวางตำแหน่งหรือใส่ข้อมูลที่คุณต้องการเพื่อรับจากกิจกรรม
ตัวสร้างอะแดปเตอร์:
public ItemsAdapter(Context context, List<Item> items, PositionHolder positionHolder){
this.context = context;
this.items = items;
this.positionHolder = positionHolder;
}
ในกิจกรรม:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
selectedPosition = 0;
positionHolder = new PositionHolder(selectedPosition);
initView();
}
ใน Adapter onClickLictener ในรายการ
ใน onBindViewHolder
holder.holderButton.setOnClickListener(v -> {
positionHolder.setPosition(position);
notifyDataSetChanged();
});
ตอนนี้เมื่อใดก็ตามที่คุณเปลี่ยนตำแหน่งใน RecyclerView จะค้างไว้ใน Holder (หรืออาจเรียกว่า Listener)
ฉันหวังว่ามันจะเป็นประโยชน์
กระทู้แรกของฉัน P