Giải pháp đơn giản của tôi
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;
}
}
Chỉ định vị hoặc đặt dữ liệu bạn cần lấy từ hoạt động.
Hàm tạo bộ điều hợp:
public ItemsAdapter(Context context, List<Item> items, PositionHolder positionHolder){
this.context = context;
this.items = items;
this.positionHolder = positionHolder;
}
Trong Hoạt động:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
selectedPosition = 0;
positionHolder = new PositionHolder(selectedPosition);
initView();
}
Trong Bộ điều hợp onClickLictener trong mục
trong onBindViewHolder
holder.holderButton.setOnClickListener(v -> {
positionHolder.setPosition(position);
notifyDataSetChanged();
});
Bây giờ bất cứ khi nào bạn thay đổi vị trí trong RecyclerView, nó sẽ được lưu giữ trong Holder (hoặc có thể nó nên được gọi là Listener)
Tôi hy vọng nó sẽ hữu ích
Bài đầu tiên của tôi; P