Tôi có một danh sách các mục trong RecyclerView và tôi đặt onClickListener trong onBindViewHolder cho mỗi chế độ xem. Trình nghe nhấp chuột hoạt động tốt, vấn đề là tôi có thể nhấp vào hai mục trong danh sách cùng một lúc và cả hai đều sẽ chạy phương thức onClick của chúng. Khi bạn có ListViews nếu bạn cố gắng bấm vào hai mục cùng một lúc nó không cho phép bạn.Có thể nhấp vào hai mục cùng một lúc trong RecyclerView
Ví dụ:
Cho phép nói rằng bạn đã chạm vào một mục trong chế độ xem danh sách và trong thời gian đó, bạn cố gắng chạm vào một mục khác mà nó sẽ không cho phép bạn. Recyclerview cho phép điều đó.
Làm cách nào để chúng tôi có thể làm cho RecyclerView hoạt động như một ListView khi nhấp?
Dưới đây là thực hiện của tôi
public class DataCardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context mContext;
private ArrayList<Data> mDatas = new ArrayList<>();
private Data mData;
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View card = LayoutInflater.from(mContext).inflate(R.layout.card, parent, false);
return new DataCardViewHolder(mContext, card, mData);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
Data data = mDatas.get(position);
((DataCardViewHolder)holder).configureDataCard(data);
}
public static class DataCardViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private Context mContext;
private Data mData;
public DataCardViewHolder(Context context, View view, Data data) {
super(view);
mContext = context;
mData= data;
}
public void configureDataCard(final Data data) {
mData= data;
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Log.v("DataCardViewHolder","onClick with data: " + mData.getData().toString());
}
}
}
làm thế nào bạn tìm ra rằng bạn đang nhấp vào hai mục cùng một lúc? –
Recyclerview không giống như listview có hành vi tương tự – kgandroid
@PramodYadav cũng nhấp chuột có nghĩa là chạm và sau đó chạm vào. Có lẽ tôi nên nói nó khác trong mô tả của tôi. Về cơ bản, cho phép nói rằng bạn đã chạm vào một mục trong một listview và trong thời gian đó bạn cố gắng chạm vào một mục khác nó sẽ không cho phép bạn. Recyclerview cho phép điều đó và đây là những gì tôi nghĩ là gây ra vấn đề. – Kiki