मेरे पास दो RecyclerView.Adapter
एस हैं जो आंतरिक कक्षाओं के समान RecyclerView.ViewHolder
एस का उपयोग कर रहे हैं।क्या RecyclerView.ViewHolder हमेशा एक आंतरिक वर्ग होना है?
मैं कोड डुप्लिकेशन से छुटकारा पाने के लिए चाहता था और इन ViewHolder
एस मुक्त, अलग वर्ग बना दिया ताकि ब्रांड नई कक्षा अब किसी भी RecyclerView.Adapter
एस द्वारा उपयोग की जा सके।
हालांकि मुझे एडाप्टर ऑब्जेक्ट्स तक पहुंचने में कठिनाई के लिए कई परेशानी का सामना करना पड़ा। getAdapterPosition()
हमेशा -1
देता है।
इसलिए मैंने अपना दिमाग बदल दिया और सुपर RecyclerView.Adapter
वर्ग बनाया जो कि उन एडाप्टर द्वारा बढ़ाया गया है और व्यूहोल्डर को सुपरक्लास में रखा गया है ताकि वे एडाप्टर इसे उप-वर्ग से उपयोग कर सकें।
लेकिन मुझे यह जानना है कि ViewHolder
को एक आंतरिक कक्षा होना चाहिए। यह मुझे नाराज बनाता है। कृपया मुझे सलाह नहीं करते एडाप्टर वर्गों गठबंधन करने के लिए, वे पूरी तरह से अलग कर रहे हैं के रूप में ViewHolder
सिर्फ एक विशेष viewType
है कि मैं अपने बेहतर दृष्टिकोण जो मुझे बेहतर महसूस करने के लिए इंतज़ार कर रहा हूँ किसी भी RecyclerView
में प्रदर्शित किया जा सकता है।
सम्मान।
जावा में असली आंतरिक कक्षाएं भी नहीं हैं, केवल कुछ सिंटेक्टिक चीनी समान पैकेज पैकेजों को उसी .java फ़ाइल में लिखने के लिए है। यदि आपको व्यूहोल्डर्स के साथ गैर-आंतरिक कक्षाओं के रूप में समस्याएं हैं, तो कृपया समस्याग्रस्त कोड पोस्ट करें। – laalto