शामिल हो सकता है, जैसा कि सूची सूची के तत्वों को टुकड़े हो सकते हैं। मुझे पता है कि आप एक टेक्स्ट व्यू एक्सएमएल को सूची दृश्य में बदलने के तरीके को बदलने के लिए असाइन कर सकते हैं, लेकिन क्या आप एक सूची दृश्य में टुकड़े जोड़ सकते हैं।क्या एक सूची दृश्य में Fragments
उदाहरण के लिए: मेरे पास एक टुकड़ा है। कहा गया टुकड़ा के लिए एक्सएमएल में एक छवि दृश्य, कुछ बड़े-शैली टेक्स्ट व्यू, और एक छोटी-शैली टेक्स्ट व्यू शामिल है। फ्रैगमेंट क्लास कोड एक बंडल प्राप्त करता है, फिर सामग्री के आधार पर टेक्स्ट व्यू और छवि दृश्य को पॉप्युलेट करता है। फ्रेगमेंट एक्सएमएल और फ्रैगमेंट कोड दोनों बिना समस्या के काम करते हैं (मैं एक व्यक्तिगत टुकड़ा सिर्फ ठीक दिखा सकता हूं)। मेरे पास एक फ्रैगमेंट एक्टिविटी है जिसमें मैं टुकड़ों की उपर्युक्त सूची प्रदर्शित करना चाहता हूं।
ArrayList<Fragment> fragList = new ArrayList<Fragment>();
Fragment fragment = Fragment.instantiate(this, TileItem.class.getName());
Bundle bundle = new Bundle();
bundle.putInt("key", 0);
fragment.setArguments(bundle);
fragList.add(fragment);
ArrayAdapter<Fragment> adapter = new ArrayAdapter<Fragment>(this, R.layout.tile_item, fragList);
listItems.setAdapter(adapter);
यहाँ इस पर सोच के अपने मोड है: यहाँ कोड मैं FragmentActivity के दृश्य के अंदर ListView पॉप्युलेट करने के लिए प्रयास करने के लिए उपयोग कर रहा हूँ है। मैं अपने सभी तत्काल दृश्यों को पकड़ने के लिए टुकड़ों का एक ऐरेलिस्ट बना देता हूं। मैं फिर एक टुकड़ा बनाते हैं, एक बंडल बनाते हैं, बंडल में डेटा जोड़ते हैं (ताकि फ्रैगमेंट मार्शल डेटा को इसके दृश्यों में सही तरीके से कर सके), बंडल को फ्रैगमेंट में जोड़ें, फिर आखिरकार फ्रैगमेंट को ऐरेलिस्ट में जोड़ें। उसके बाद, मैं एक ऐरे एडाप्टर बना देता हूं, उस तत्व लेआउट को जोड़ता हूं जिसे मैं उपयोग करना चाहता हूं, और मैंने जो टुकड़े किए हैं, उनकी सूची; फिर मेरे एडाप्टर से पढ़ने के लिए ListView सेट करें।
कोई भी व्यक्ति जो इस कोड को चला रहा है, वह संभवतः एनपीई @ ArrayAdapter को तत्काल प्राप्त कर देगा। क्या देता है? क्या यह भी संभव है? इससे पहले कि मैं अपने मस्तिष्क को रैकिंग करता हूं, क्या कोई मुझे बता सकता है कि क्या मैं अपना समय बर्बाद कर रहा हूं? क्या कोई बेहतर तरीका है? मैं स्क्रॉलव्यू का उपयोग करने के बारे में सोच रहा हूं, लेकिन लिस्ट व्यू की इतनी सारी कार्यक्षमता को फिर से लागू करने की आवश्यकता होगी और जब आवश्यक नहीं है तो मुझे पहिया को फिर से नफरत करने से नफरत है।
किसी को पढ़ने के लिए धन्यवाद, और विशेष रूप से आपके विचारों के लिए धन्यवाद यदि आप उन्हें छोड़ने का फैसला करते हैं। मैंने इसके लिए एक स्थापित उत्तर के लिए चारों ओर खोज करने की कोशिश की है, लेकिन मुझे लगता है कि एक फ्रेगमेंट के एक सूची दृश्य के उपयोग से संबंधित प्रश्न/वेब पेज हैं; एक सूची दृश्य के तत्वों के रूप में टुकड़ों का उपयोग नहीं करते
संपादित करें: मैंने नीचे दिए गए सुझावों को और अधिक जांच शुरू कर दी। जिस तरह से चीजें दिखाई देती हैं, मैं एक कस्टम एडाप्टर का उपयोग करने में सक्षम होना चाहिए जो एक्सएमएल से केवल फ्लैट आउट बिल्डिंग के बजाय टुकड़ों को बढ़ाता है (प्रक्रिया का वर्णन करने के बेहतर तरीके की कमी के लिए) हालांकि, मेरा वर्तमान कार्यान्वयन सेट करने की कोशिश करते समय एनपीई फेंक रहा है एडाप्टर
यहाँ मेरी कस्टम अनुकूलक (संक्षिप्तता के लिए संक्षिप्त) कोड है:
public class AdapterItem extends ArrayAdapter<Fragment> {
Context c;
List<Fragment> f;
public AdapterItem(Context c, List<Fragment> f) {
super(c, R.layout.tile_item, f);
this.c = c;
this.f = f;
}
@Override
public View getView(int pos, View v, ViewGroup vg) {
LayoutInflater i = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
return i.inflate(R.layout.tile_item, vg, false);
}
}
और यहाँ मैं इसे कैसे लागू करने कर रहा हूँ है:
ArrayList<Fragment> fragList = new ArrayList<Fragment>();
Fragment fragment = Fragment.instantiate(this, TileItem.class.getName());
Bundle bundle = new Bundle();
bundle.putInt("key", 0);
fragment.setArguments(bundle);
fragList.add(fragment);
AdapterItem adapter = new AdapterItem(this, fragList);
adapter.add(fragment);
listItems.setAdapter(adapter);
तो यह कुछ हो गया है दिन और मुझे पूरा यकीन है कि यह धागा दफनाया गया है। हालांकि, मैंने सोचा कि अगर कोई यह कोशिश करना चाहता है तो मैं एक आखिरी अपडेट जोड़ूंगा और एक Google खोज उन्हें यहां लाएगी। तो मेरे कार्यान्वयन में जब सूची सूची को एडाप्टर दिया जाता है तो मुझे एनपीई मिल रहा है। यह पता लगाने के लिए रॉकेट सर्जन नहीं लेता है कि यह निश्चित रूप से एडाप्टर है और सूची दृश्य को फेंकने वाला नहीं है। मेरे जीवन के लिए मैं यह नहीं समझ सकता कि क्यों ...
किसी भी दर पर, मुझे लगता है कि मुझे कुछ विचार है। सबसे पहले, एक छोटी सी कहानी: कुछ समय पहले मैं FragmentDialog के अंदर FragmentTransactions बनाने की कोशिश कर रहा था। हर बार मैंने ऐसा करने का प्रयास किया, मुझे एक एनपीई मिलेगा। आखिरकार, बहुत से शोध के माध्यम से, मैंने पाया कि कारण इस बात से संबंधित है कि टुकड़े किए गए हैं। जब एक टुकड़ा कहा जाता है तो इसे इसके माता-पिता से संदर्भ की आवश्यकता होती है। चूंकि एक संवाद माता-पिता वह गतिविधि है जिसने इसे शुरू किया है, संवाद स्वयं आवश्यक मानदंडों को पूरा नहीं करता है।मेरा मानना है कि जब सूची सूची में टुकड़े जोड़ने का प्रयास करते हैं, तो यह भी मामला है। चूंकि ListView एक टुकड़े को चलाने के साथ समझौते को पूरा नहीं करता है, इसलिए यह एनपीई फेंकता है और इस प्रकार, मुझे लटकता है और सम्मेलनों में वापस जाता है। डी @ एमएन ... मैंने वास्तव में उम्मीद की थी कि मैं ऐसा करने में सक्षम हूं। सरल एक्सएमएल के बजाय टुकड़ों का उपयोग करके सूची को व्यवस्थित/खोजना इतना आसान हो गया होगा। ओह ठीक है ... अनुमान है कि अगर कोई सोच रहा है तो यह नहीं किया जा सकता है।
क्यों तुम भी * चाहते हैं * टुकड़े होने के लिए अनिवार्य रूप से यह नीचे
BaseAdapter
, जो मेरे उदाहरण में इस तरह दिखता है आता है "एक सूची दृश्य के तत्व"? डेवलपर अपने तत्वों को टुकड़े किए बिना वर्षों के लिए 'ListView' बना रहे हैं। आप उन्हें टुकड़े बनाने से क्या हासिल करने की उम्मीद कर रहे हैं? – CommonsWareठीक है, एक के लिए मैं एक सूची के अंदर बस एक साधारण टेक्स्ट व्यू से अधिक दिखाने में सक्षम होने की उम्मीद करता हूं (वास्तव में मैं एक छवि, और पाठ की कुछ अतिरिक्त पंक्तियां दिखाने में सक्षम हूं)। इसके अलावा, मैं कोड को डुप्लिकेट किए बिना विभिन्न गतिविधियों से खंड कोड का पुन: उपयोग करने में सक्षम हूं। मैंने उन वस्तुओं की स्क्रॉलिंग सूचियां भी देखी हैं जो केवल एक साधारण टेक्स्ट व्यू (जैसे Google Play में सूचियों की तुलना में अधिक गतिशील हैं), वे केवल टेक्स्ट व्यू से अधिक जटिल हैं)। यह कैसे प्राप्त किया जाता है? एक टुकड़ा का उपयोग करके वही प्रभाव संभव नहीं होगा (एक आसान)? – user1449018
आप अपनी पंक्तियों के लिए एक्सएमएल से बढ़ाए गए कस्टम एडाप्टर और दृश्यों का उपयोग कर ऐसा कर सकते हैं। –