से सभी आइटम प्राप्त करना मेरे पास ListFragment
ArrayAdapter
द्वारा समर्थित है जो Loader
द्वारा पॉप्युलेट हो जाता है। जब उपयोगकर्ता किसी एक आइटम पर क्लिक करता है, तो मैं चयनित आइटम के संदर्भ के साथ-साथ शेष सूची आइटम को किसी अन्य खंड में पास करना चाहता हूं। मेरा सवाल यह है कि मुझे एडाप्टर से सभी आइटम कैसे प्राप्त करना चाहिए? यहाँ की संभावना है, मैं देख रहा हूँ कर रहे हैं:ArrayAdapter
1. समर्थन List
के लिए एक संदर्भ रखें ताकि तरह एडाप्टर बनाएँ:
List<DomainObject> items = new ArrayList<DomainObject>();
listAdapter = new ArrayAdapter<DomainObject>(getActivity(), R.layout.mine, items);
और फिर बस items
या इसकी एक प्रति पारित अगली गतिविधि के लिए।
मुझे इसके नकारात्मक पक्ष यह है कि मैं अनियंत्रित तथ्य पर भरोसा कर रहा हूं कि उसी सूची में जिसे मैं निर्माता को पास करता हूं, बाद में आइटम शामिल करता है।
2. एडाप्टर
जब एक आइटम क्लिक किया जाता है के माध्यम से दोहराएं, अनुकूलक के माध्यम से पुनरावृति और सूची का निर्माण। यह एक अनावश्यक काम की तरह लगता है। आइटम एडाप्टर में List
में निहित हैं और मैं मैन्युअल रूप से प्रत्येक आइटम को एक नई सूची में कॉपी कर रहा हूं।
3. जब एडाप्टर के लिए एक आइटम जोड़ने से पहले एडाप्टर
को जोड़ने मदों की एक अलग सूची रखें, एक अलग सूची है कि मैं टुकड़ा में बनाए रखने के लिए जोड़ें। यह भी अपमानजनक है क्योंकि वस्तुओं की सूची ArrayAdapter
और खंड में कॉपी की गई है।
जबकि यह लेख अधिकतर अच्छा है, मैं अपने पूरे थ्रेड सुरक्षा अनुभाग को अनदेखा कर दूंगा। वह ताले होने का अनुमान लगाता है (पृष्ठभूमि थ्रेड पर होने वाली फ़िल्टरिंग के कारण) और 'एर्रेएडाप्टर' पहले से ही क्रैश हो जाएगा यदि 'सूचित करेंडेटाट चेंज()' यूआई थ्रेड के अलावा किसी भी चीज़ पर लागू किया गया है। –
@ scompt.com मुझे लगता है कि आपके द्वारा पोस्ट किया गया लिंक ArrayAdapter को समझा रहा है। ऐसा लगता है कि केवल ArrayAdapter समझाया गया है। मैं थोड़ा उलझन में हूं ... –
theMfromA
आपके द्वारा लिंक किए गए पृष्ठ से ... "केवल टेक्स्ट प्रदर्शित कर सकता है।" => गलत। "आपको CharSequence आइटम्स की एक सूची प्रदान करने के लिए मजबूर करता है ..." => गलत "यह आवश्यक है कि आप एक लेआउट संसाधन प्रदान करें जिसमें केवल एक टेक्स्ट व्यू" => गलत है। लगभग सभी मान्यताओं गलत हैं ... मेरा मतलब यह नहीं है कि ArrayAdapter बेसएडाप्टर से बेहतर है लेकिन मूल बातें गलत हैं। – Loenix