यहां क्लिक की गई वस्तु की स्थिति जानने का सबसे सरल और आसान तरीका है:
मैंने भी इसी समस्या का सामना किया है।
मैं RecyclerView () के क्लिक / चयनित आइटम की स्थिति का पता लगाना चाहता था और उस विशेष आइटम पर कुछ विशिष्ट संचालन करना चाहता था।
getAdapterPosition () विधि इस तरह के सामान के लिए एक आकर्षण की तरह काम करती है। मुझे यह तरीका एक दिन के लंबे शोध के बाद और कई अन्य तरीकों को आजमाने के बाद मिला।
int position = getAdapterPosition();
Toast.makeText(this, "Position is: "+position, Toast.LENGTH_SHORT).show();
आपको किसी भी अतिरिक्त विधि का उपयोग करने की आवश्यकता नहीं है। बस 'स्थिति' नाम का एक वैश्विक वैरिएबल बनाएं और इसे एडैप्टरपोजिशन () एडॉप्टर (क्लास या समान) के किसी भी प्रमुख तरीके से शुरू करें।
इस लिंक से एक संक्षिप्त दस्तावेज यहां दिया गया है ।
getAdapterPosition संस्करण 22.1.0 int getAdcapePosition में जोड़ा गया () इस ViewHolder द्वारा दर्शाए गए आइटम के एडाप्टर की स्थिति देता है। ध्यान दें कि यह getLayoutPosition () से भिन्न हो सकता है यदि लंबित एडेप्टर अपडेट हैं लेकिन एक नया लेआउट पास अभी तक नहीं हुआ है। अगले लेआउट ट्रैवर्सल तक RecyclerView किसी भी एडेप्टर अपडेट को हैंडल नहीं करता है। इससे उपयोगकर्ता स्क्रीन पर क्या देखता है और एडॉप्टर सामग्री क्या है, इसके बीच अस्थायी विसंगतियां पैदा हो सकती हैं। यह असंगतता महत्वपूर्ण नहीं है क्योंकि यह 16ms से कम होगा, लेकिन यह एक समस्या हो सकती है यदि आप एडेप्टर तक पहुंचने के लिए ViewHolder स्थिति का उपयोग करना चाहते हैं। कभी-कभी, आपको उपयोगकर्ता घटनाओं के जवाब में कुछ क्रियाएं करने के लिए सटीक एडाप्टर की स्थिति प्राप्त करने की आवश्यकता हो सकती है। उस स्थिति में, आपको इस पद्धति का उपयोग करना चाहिए जो व्यूहॉल्डर के एडेप्टर की स्थिति की गणना करेगा।
मदद करने के लिए खुश। बेझिझक शंकाएँ पूछें।