मेरे कुछ अंश हैं जिन्हें एक नियमित संवाद दिखाने की आवश्यकता है। इन संवादों पर उपयोगकर्ता हां / ना में उत्तर चुन सकता है, और फिर टुकड़ा को तदनुसार व्यवहार करना चाहिए।
अब, Fragment
कक्षा में onCreateDialog()
ओवरराइड करने की कोई विधि नहीं है , इसलिए मुझे लगता है कि मुझे बाहर के संवादों को लागू करना होगा, जिसमें शामिल हैं Activity
। यह ठीक है, लेकिन फिर Activity
खंड को चुने गए उत्तर को किसी तरह वापस रिपोर्ट करने की आवश्यकता है। मैं निश्चित रूप से यहां कॉलबैक पैटर्न का उपयोग कर सकता हूं, इसलिए यह खंड Activity
एक श्रोता वर्ग के साथ ही रजिस्टर करता है , और गतिविधि जवाब को फिर से, या कुछ इस तरह से रिपोर्ट करेगी।
लेकिन यह एक साधारण कार्य के लिए काफी बड़ी गड़बड़ी प्रतीत होती है क्योंकि एक टुकड़े में "सरल" हां-नहीं संवाद प्रदर्शित करना। इसके अलावा, इस तरह से मेरा Fragment
कम आत्म-निहित होगा।
क्या ऐसा करने के लिए कुछ क्लीनर तरीका है?
संपादित करें:
इस प्रश्न का उत्तर वास्तव में विस्तार से नहीं बताता है कि किसी को फ़्रैगमेंट से संवाद प्रदर्शित करने के लिए डायलॉगफ्रैगमेंट का उपयोग कैसे करना चाहिए। तो AFAIK, जाने का रास्ता है:
- एक टुकड़ा प्रदर्शित करें।
- जब जरूरत होती है, तो एक DialogFragment को तुरंत करें।
- मूल संवाद को इस DialogFragment के लक्ष्य के रूप में सेट करें, के साथ
.setTargetFragment()
। - मूल फ़्रैगमेंट से .show () के साथ DialogFragment दिखाएँ।
- जब उपयोगकर्ता इस DialogFragment पर कुछ विकल्प चुनता है, तो इस चयन के बारे में मूल फ़्रैगमेंट को सूचित करें (जैसे उपयोगकर्ता ने 'हाँ' पर क्लिक किया), आप .getTarget () के साथ मूल फ़्रैगमेंट का संदर्भ प्राप्त कर सकते हैं।
- डायलॉगफ्रेग्मेंट को खारिज करें।