2013-02-10 14 views
11

मैंने कई stackoverflow.com उत्तरों को पढ़ा है, लेकिन अभी भी एक सरल AlertDialog पर डायलॉगफ्रैगमेंट का उपयोग करने का लाभ नहीं दिख रहा है। मेरे पास है, जाहिरा तौर पर, दो रणनीतियों:सरल अलर्टडिअलॉग पर डायलॉगफ्रैगमेंट का उपयोग करने का लाभ?

क) एक AlertDialog.Builder का उपयोग एक AlertDialog, .create() .show() यह मेरी गतिविधि में (कुछ बटन हैंडलर में) कॉन्फ़िगर करने के लिए यह, और फिर, या

ख) उपवर्ग DialogFragment, onCreateDialog में एक ही AlertDialog निर्माण कोड लिखने() (सिवाय मैं सिर्फ .create वापसी(), और फिर, मेरे गतिविधि में, एक DialogFragment का दृष्टांत, और यह दिखा।

उत्पादन वही दिखता है।

किसी भी तरह से, मैं बहिष्कृत कोड का उपयोग कर रहा हूं - मैं उपयोग कर रहा हूं। AlertDialog या DialogFragment दोनों के साथ दिखाएं()। क्या लाभ है जब मैं किसी अन्य आकार के डिवाइस पर जाता हूं? या क्या बात है ...

किसी भी अंतर्दृष्टि के लिए धन्यवाद,

माइकल

उत्तर

23

DialogFragment के लिए जीवन चक्र प्रबंधन अनेक मामलों संभालती विन्यास बदलाव (जैसे स्क्रीन रोटेशन) और राज्य बहाली को अपने ऐप्लिकेशन के प्रक्रिया अगर सहित आप पृष्ठभूमि में मारे गए और उपयोगकर्ता बाद में इसके पास लौट आया। यदि आप डायलॉग फ्रैगमेंट का उपयोग नहीं कर रहे हैं तो आपको इस तरह के मामलों को किसी अन्य तरीके से संभालना होगा।

+1

धन्यवाद! मेरी इच्छा है कि Google ने अपने दस्तावेज़ों में कुछ ऐसा ही कहा था। –

+3

इसे व्यवस्थित किया जा सकता है। ;) – adamp

0

@adamp ने कहा, DialogFragment अपने जीवन चक्र कॉलबैक प्राप्त कर रहा है, यह अपने जीवन चक्र के लिए ज़िम्मेदार होगा, इसलिए आपकी गतिविधि यह बताने के लिए ज़िम्मेदार नहीं होगी कि क्या करना है।

उदाहरण के लिए जब गतिविधि समाप्त हो रही है, तो आपकी गतिविधि को संवाद को dimiss() पर बताना चाहिए, अन्यथा आप देखेंगे कि इसमें leaked the window त्रुटि है।

संबंधित मुद्दे