2013-07-09 5 views
18

संवाद को खारिज करते हैं, तो मैं अपने background.So के लिए कुछ मैं जानना चाहता हूँ क्या करना चाहते हैं संवादएंड्रॉइड में एक संवाद को खारिज करने के बारे में कैसे पता चलेगा?

+0

आप किसी भी डेटा प्राप्त करने की अपेक्षा नहीं है, लेकिन सिर्फ शायद चला गया है संवाद जानना चाहता हूँ इस मदद मिल सकती है: https://gist.github.com/CrandellWS/ac79d3864a96344d204d869d64fd1922 – CrandellWS

उत्तर

47

आप एक onDismissListener

http://developer.android.com/reference/android/content/DialogInterface.OnDismissListener.html

public Dialog createDialog() { 
    Dialog d = new Dialog(this); 
    d.setOnDismissListener(new OnDismissListener() { 
     @Override 
     public void onDismiss(final DialogInterface arg0) { 
      // do something 
     } 
    }); 
    return d; 
} 

यदि आप उपयोग कर सकते हैं को खारिज कर दिया है, तो एक DialogFragment उपयोग कर रहे हैं बस ओवरराइड onDismiss()

http://developer.android.com/reference/android/app/DialogFragment.html#onDismiss(android.content.DialogInterface)

+0

धन्यवाद बहुत ज्यादा! –

+0

शानदार लेकिन यह डिवाइस को घूर्णन करने का मामला नहीं मिलता है - जो संवाद को मारता है। कोई विचार? – Fattie

+3

@JoeBlow जब डिवाइस घुमाया जाता है और गतिविधि को 'ऑनक्रेट' पर पुनर्निर्मित किया जाएगा और 'बंडल सहेजा गयास्टेंसस्टेट' 'शून्य 'के बराबर नहीं होगा। आप किसी भी राज्य को संग्रहीत कर सकते हैं (उदाहरण के लिए, एक बूलियन चाहे डिवाइस डिवाइस घुमाए जाने से पहले दिखा रहा था) 'onsaveInstanceState' में और इसे यहां संदर्भित करें। –

1

@ केन वुल्फ इस सवाल का एक बड़ा जवाब है।

बस जोड़ना चाहता था कि onDismissListener केवल API 17 में पेश किया गया था। यदि आप कुछ कम समर्थन करने की कोशिश कर रहे हैं, तो आप onCancelListener का उपयोग कर सकते हैं, जो उतना अच्छा नहीं है लेकिन बैकबटन जैसे मामलों को कवर करता है और अलर्टडिअलॉग के बाहर टैप करता है।

http://developer.android.com/reference/android/content/DialogInterface.OnCancelListener.html#onCancel(android.content.DialogInterface)

public Dialog createDialog() { 
    Dialog d = new Dialog(this); 
    d.setOnCancelListener(new DialogInterface.OnCancelListener() { 
     @Override 
     public void onCancel(DialogInterface dialog) { 
      // do something 
     } 
    }); 
} 
संबंधित मुद्दे

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