2013-03-01 6 views
6

मुझे डायलॉग फ्रैगमेंट (कॉल करने के लिए कॉल के बाद) के अंत को संभालने की आवश्यकता है - उदाहरण के लिए, मैं गतिविधि के अंदर एक टोस्ट दिखाऊंगा जो खारिज होने के बाद खंड "शामिल" है।डायलॉगफ्रैगमेंट बंद करें इवेंट

मैं ईवेंट को कैसे प्रबंधित करूं?

+0

की तरह एक बटन पर एक घटना दे सकते हैं आप संवाद को बंद करना चाहते हैं, और उसके बाद: यही कारण है कि आप इसे ओवरराइड और आपकी onDismiss() विधि है जो आप YourActivity में लागू बुलाना चाहिए है इसे एक टोस्ट में खारिज कर दिया जाता है? –

+0

हां, यह है कि मैं – giozh

उत्तर

17

अपने डायलॉगफ्रैगमेंट में onDismiss() ओवरराइड करें, या कोड ब्लॉक में setOnDismissListener() का उपयोग करें जहां आप टुकड़ा बना रहे हैं।

+0

करना चाहता हूं संदर्भ में डिस्मिस को ओवरराइड करने के लिए कहा गया है। अब मुझे एक और परेशानी है। टोस्ट बनाने के लिए मैं मुख्यदृश्य संदर्भ कैसे प्राप्त कर सकता हूं? – giozh

+0

यदि आप एक और प्रश्न बनाते हैं तो संदर्भ प्राप्त करने के लिए पूछे जाने पर सभी को फायदा होगा। ऐसे कई अन्य उत्तर हैं जिन्हें आप पा सकते हैं जो पहले ही इस प्रश्न का उत्तर दे चुके हैं। –

11

मुझे इसी तरह की समस्या का सामना करना पड़ा, लेकिन मैं संवाद खारिज के बारे में एक और गतिविधि को सूचित करना चाहता था (गतिविधि नहीं बनाई गई थी और संवाद दिखाया था)।

यद्यपि आप बस के रूप में Austyn Mahoney सुझाव आपके DialogFragment में onDismiss() विधि ओवरराइड कर सकते हैं, फिर भी आप नहीं उपयोग setOnDismissListener(), DialogFragment बस इस तरह के विधि (के अनुसार: Android Developers DialogFragment Reference) प्रदान नहीं करता है क्योंकि कर सकते हैं।

लेकिन फिर भी संवाद के बारे में किसी भी अन्य गतिविधि को सूचित करने को खारिज एक और अच्छा तरीका है, (मैं वहाँ वह मिल जाए: DialogFragment and onDismiss), यहाँ यह आता है:

सबसे पहले आप अपनी गतिविधि बनाना चाहिए (एक है कि आप पारित करने के लिए संवाद के बारे में जानकारी को खारिज) OnDismissListener को लागू करना चाहते हैं:

public final class YourActivity extends Activity implements DialogInterface.OnDismissListener { 

    @Override 
    public void onDismiss(final DialogInterface dialog) { 
     //Fragment dialog had been dismissed 
    } 

} 

फिर Android Developers DialogFragment Reference DialogFragment के अनुसार पहले से ही onDismiss() विधि के साथ OnDismissListener लागू करता है। शो

public final class DialogFragmentImage extends DialogFragment { 

    @Override 
    public void onDismiss(final DialogInterface dialog) { 
     super.onDismiss(dialog); 
     final Activity activity = getActivity(); 
     if (activity instanceof DialogInterface.OnDismissListener) { 
      ((DialogInterface.OnDismissListener) activity).onDismiss(dialog); 
     } 
    } 

} 
+0

ऑनडिस्मिस (..) यदि मेरे पास एकाधिक संवाद हैं तो मैं एक संवाद की पहचान कैसे कर सकता हूं? – Anthea

+0

जब संवाद को खारिज कर दिया जाता है, तो सिस्टम 'ऑनडिस्मिस (अंतिम डायलॉग इंटरफेस संवाद)' तर्क में खारिज किए गए संवाद के संदर्भ को पास करता है। देखें: http://developer.android.com/reference/android/app/DialogFragment.html#onDismiss(android.content.DialogInterface) – Krzysiek

0

आप

img_popup_timer_cancel.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(getActivity(), "Cancel", Toast.LENGTH_SHORT).show(); 
       **getDialog().cancel();** 
      } 
     }); 
संबंधित मुद्दे