onCreateView()
में फिर
, मैं एक ListView
में वह डेटा डाल करने के लिए चाहते हैं, सेट एक onItemClickListener
, आदि ...
समस्या यह है कि मैं AsyncTask
और यूआई धागा के बीच एक दौड़ बनाने रहा हूँ। यदि onCreateView()
से पहले AsyncTask
पुन: प्राप्त करने में किया जाता है कहा जाता है, तो मैं एडाप्टर ठीक से सेट नहीं है, निर्धारित नहीं करते onItemClickListener
, आदि ...
मैं किसी तरह से लगता है कि मैं AsyncTask
के लिए प्रतीक्षा करना चाहते हैं onCreateView()
फ़ंक्शन शुरू करने से पहले निष्पादन समाप्त करें। क्या यह संभव है? मैंने कार्य पर get()
का उपयोग करने के बारे में पढ़ा, लेकिन मुझे इसे निष्पादित करने में कुछ परेशानी थी। ऐसा कुछ प्रतीत नहीं होता था।
कारण मैं onCreate()
में डेटा पुनः प्राप्त और onCreateView()
में एडाप्टर सेट (बजाय AsyncTask
की onPostExecute()
में अनुकूलक स्थापित करने का) करना चाहते हैं, कि मैं एक बार डेटा पुनः प्राप्त करना चाहते हैं, और करने में सक्षम हो बस दृश्य बनाएं यदि उपयोगकर्ता स्क्रीन को घुमाता है या उस Fragment
पर वापस जाता है।
ओह दिलचस्प द्वारा दिया जाता है।क्या मुझे एडाप्टर अपडेट करते समय हर बार InememClickListener() सेट करना होगा? या शुरुआत में बस एक बार? साथ ही, यदि दृश्य अभी तक नहीं बनाया गया है, तो मैं क्रिएट() में सूचीदृश्य कैसे प्रारंभ कर सकता हूं? क्या वह मुझे एक nullpointerexception नहीं दे सकता है? – user2085335
आपको केवल एक बार 'OnItemClickListenter' सेट करना होगा। कोई डेटा नहीं होने पर सूची दृश्य प्रारंभ करने के लिए, केवल 'तत्व' के साथ 'ArrayList' का उपयोग करें। यह कोई NullPointerException नहीं देगा। बाद में जब डेटा पहुंचा तो आप उसे 'ArrayList' में जोड़ सकते हैं और 'NotifyDataSetChanged() 'को कॉल कर सकते हैं। – sujith
धन्यवाद! बहुत अच्छा काम करता है! 'OnItemClickListener' टिप्पणी के बारे में एक त्वरित प्रश्न: यदि मेरे पास केवल 'setOnItemClickListener' कॉल' onCreateView() 'में है, तो यह काम नहीं कर रहा है। लेकिन अगर मैं एडाप्टर को अपडेट करने के बाद 'setOnItemClickListener' पर एक और कॉल जोड़ता हूं, तो यह काम करता है। यह वास्तव में एक बड़ा सौदा नहीं है क्योंकि यह इस तरह से काम कर रहा है, लेकिन मैं जानना चाहता हूं कि यदि आपके पास कोई विचार है तो ऐसा क्यों हो सकता है। धन्यवाद। – user2085335