Bir RecyclerView öğesinde öğelerim var ve her görünüm için onBindViewHolder'da onClickListener öğesini ayarlıyorum. Tıklama dinleyicisi iyi çalışıyor, sorun şu anda listedeki iki öğeyi tıklayabilirim ve her ikisi de onClick yöntemini çalıştıracak. Aynı anda iki maddeye tıklamaya çalışırsanız ListViews olduğunda size izin vermez.Aynı anda iki öğeye de tıklayabilirsiniz RecyclerView
Örneğin:
Listede bir öğeye zaten dokunduğunuzu ve bu süre zarfında başka bir öğeye dokunmayı denediğinizi söyleyelim. Recyclerview bunu sağlar.
RecyclerView öğesini tıklatırken bir ListView gibi çalışmasını nasıl sağlayabiliriz?
Aşağıda
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());
}
}
}
İki öğede aynı anda tıklandığınızı nasıl anlıyorsunuz? –
Geri izleme görünümünde, liste görünümünden farklı olarak – kgandroid
@PramodYadav iyi tıklama, aynı dokunma ve dokunma anlamına gelir. Belki de açıklamamda farklı şekilde söylemeliydim. Temel olarak, bir liste görünümünde bir öğeye zaten dokunduğunuzu ve bu süre zarfında başka bir öğeye dokunmaya çalıştığınızı söyleyelim. Recyclerview bunu sağlar ve bu sorunun neden olduğunu düşünüyorum. – Kiki