में एक ही समय में दो आइटमों पर क्लिक करने में सक्षम होने के लिए मेरे पास रीसाइक्लर व्यू में आइटम्स की एक सूची है और मैंने प्रत्येक दृश्य के लिए ऑनबिंडलिस्टर में ऑनक्लिक लिस्टनर सेट किया है। क्लिक श्रोता बस ठीक काम करता है, मुद्दा यह है कि मैं एक ही समय में सूची में दो आइटमों पर क्लिक कर सकता हूं और उनमें से दोनों अपनी ऑनक्लिक विधि चलाएंगे। जब आपके पास ListViews हैं, तो आप एक ही समय में दो आइटमों पर क्लिक करने का प्रयास करते हैं, यह आपको अनुमति नहीं देता है।रीसाइक्लर व्यू
उदाहरण के लिए:
आइए कहें कि आप सूची सूची में किसी आइटम पर पहले ही स्पर्श कर रहे हैं और उस समय के दौरान आप किसी अन्य आइटम को स्पर्श करने का प्रयास करते हैं, यह आपको नहीं देगा। Recyclerview कि अनुमति देता है।
क्लिक करने के लिए हम ListView की तरह काम करने के लिए रीसाइक्लिंग व्यू कैसे बना सकते हैं?
नीचे मेरी कार्यान्वयन
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());
}
}
}
आप कैसे पता लगा रहे हैं कि आप एक ही समय में दो आइटमों पर क्लिक कर रहे हैं? –
सूचीदृश्य के विपरीत पुनर्नवीनीकरण एक ही व्यवहार करता है – kgandroid
@PramodYadav अच्छी तरह से क्लिक करने का मतलब स्पर्श करें और फिर अनछुए। शायद मुझे यह मेरे विवरण में अलग-अलग कहा जाना चाहिए था। असल में, मान लीजिए कि आप पहले से ही किसी सूची में किसी आइटम पर स्पर्श कर रहे हैं और उस समय के दौरान आप किसी अन्य आइटम को स्पर्श करने का प्रयास करते हैं, यह आपको नहीं देगा। Recyclerview की अनुमति देता है और यही वह है जो मुझे लगता है कि इस मुद्दे का कारण बन रहा है। – Kiki