RecyclerViewにアイテムのリストがあり、各ビューのonBindViewHolderにonClickListenerを設定しました。クリックリスナーはうまく動作します。問題は、リスト内の2つのアイテムを同時にクリックすることができ、両方ともonClickメソッドを実行することです。あなたが同時に2つのアイテムをクリックしようとするとListViewがあると、それはあなたを許可しません。RecyclerViewで同時に2つのアイテムをクリックすることができます
例:
あなたは既にリストビュー内のアイテムに触れており、その間に別のアイテムに触れようとすると、それはあなたに許されません。 Recyclerviewはそれを可能にします。
RecyclerViewをクリックするとListViewのように動作させるにはどうしたらいいですか?以下は
残念ながら、RecyclerView
はあなたのためにそれを処理しません
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());
}
}
}
同時に2つのアイテムをクリックしていることをどのように把握していますか? –
Recyclerviewはlistviewと異なり、同じ動作をします – kgandroid
@PramodYadavをよくクリックするということは、タッチしてからタッチすることを意味します。たぶん私は私の説明で違った言い方をしていたはずです。基本的には、既にリストビュー内のアイテムに触れているとし、その間に別のアイテムに触れようとすると、それはあなたに許されません。 Recyclerviewはそれを可能にし、これは私が問題を引き起こしていると思います。 – Kiki