Activity
पर finish()
पर कॉल करने के साथ-साथ finish()
पर कॉल करने के लिए मैं Dialog
के onBackPressed
पर ओवरराइड कैसे करूं?बैकप्रेस() पर संवाद ओवरराइड करें?
24
A
उत्तर
50
आप setOnCancelListener
उपयोग कर सकते हैं:
dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
{
@Override
public void onCancel(DialogInterface dialog)
{
MyActivity.this.finish();
}
});
आप केवल अपने गतिविधि समाप्त करने के लिए की जरूरत है। संवाद स्वचालित रूप से खारिज कर दिया जाएगा।
22
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
dialog.cancel();
return true;
}
return false;
}
})
2
@Override
public Dialog onCreateDialog(Bundle savedInstanceState){
return new Dialog(getActivity(), getTheme()){
@Override
public void onBackPressed(){
// dismiss();
// activityReference.finish();
}
};
}
0
मेरे मामले में
मैं DialogFragment, जो अभी भी है एक संवाद .. तो मैं onCancel()
मेरी संवाद में ओवरराइड का उपयोग, और यह गतिविधि की onBackPressed()
तरह से प्रतिक्रिया करता है हर मैं वापस बटन पर क्लिक करें संवाद है दिखाया गया है।
@Override
public void onCancel(DialogInterface dialog)
{
super.onCancel(dialog);
Log.i("RecDialog.onCancel()", "onCancel");
}
आशा है कि मैंने मदद की।
0
अंततः मैंने बैक कुंजी सुनने के लिए मेरे संवाद में एक प्रमुख श्रोता जोड़ा। onBackPressed()
ओवरराइड करने के रूप में सुरुचिपूर्ण नहीं है लेकिन यह काम करता है। यहाँ कोड है:
dlgDetails = new AlertDialog.Builder(this)
.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey (DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK &&
event.getAction() == KeyEvent.ACTION_UP &&
!event.isCanceled()) {
dialog.cancel();
showDialog(DIALOG_MENU);
return true;
}
return false;
}
})
//(Rest of the .stuff ...)
संबंधित मुद्दे
- 1. एंड्रॉइड एनडीके: जावा के बिना मूल सक्रियता में बैकप्रेस पर ओवरराइड कैसे करें?
- 2. एंड्रॉइड प्रॉम्प्टिंग एक अलर्टडियलॉग पर बैकप्रेस
- 3. उपयोगकर्ता ऑब्जेक्ट्स पर get_absolute_url डिफ़ॉल्ट ओवरराइड करें?
- 4. बटन पर jquery संवाद
- 5. संवाद पर जावा श्रोता
- 6. इनहेरिट jQuery से यूआई संवाद और फोन ओवरराइड विधि
- 7. इंटरफ़ेस ओवरराइड विधियों पर प्रतिबिंब
- 8. शब्दकोश ओवरराइड करें।
- 9. ऑनरर ओवरराइड कब करें?
- 10. ओवरराइड कैसे करें()?
- 11. Django ओवरराइड करें
- 12. प्रिंट करें संवाद बॉक्स
- 13. ग्रेक्व्यू स्क्रीन पर jqueryui संवाद
- 14. jQueryUI मोडल संवाद पर ब्लॉकुई
- 15. संवाद
- 16. सीएसएस शैली को ओवरराइड करें
- 17. सी ++ धाराओं को ओवरराइड करें
- 18. MapView टाइल स्रोत ओवरराइड करें?
- 19. एंड्रॉइड बैक बटन ओवरराइड करें
- 20. ओवरराइड करें: jQuery के साथ होवर करें?
- 21. गैर-मोडल संवाद के शीर्ष पर एक मोडल संवाद को सही तरीके से कार्यान्वित कैसे करें?
- 22. एक मॉडल संवाद से मॉडल संवाद - दूसरा बंद होने पर बंद करें - क्यों?
- 23. रनटाइम पर किसी पैकेज में सामान को ओवरराइड कैसे करें?
- 24. Ext.form.Action.Submit पर एक डिफ़ॉल्ट कॉन्फ़िगरेशन विकल्प को ओवरराइड कैसे करें?
- 25. एक django फॉर्म तत्व पर डेटा सत्यापन को ओवरराइड करें
- 26. उदाहरण के स्तर पर एक विधि को ओवरराइड करें
- 27. एंड्रॉइड स्पिनर पर क्लिक करने के लिए ओवरराइड कैसे करें?
- 28. WPF पर ऑनक्लोज़ ईवेंट को ओवरराइड कैसे करें?
- 29. Django - मॉडल पर फ़िल्टर को ओवरराइड कैसे करें?
- 30. ओवरराइड और गैर ओवरराइड निर्माता
मुझे सही दिशा में इशारा करते हुए के लिए +1, प्रभाव मैं खोज रहा था onDismissListener लेकिन :-) – Skizit
काफी निकट onDismissListener भी सकारात्मक और नकारात्मक बटन के ऊपर लिख है। इसलिए यदि आप बैकप्रेस किए गए ओवरराइट को ओवरराइट करना चाहते हैं और डायलॉग के बाहर कहीं भी क्लिक करना चाहते हैं, तो कैंसल लिस्टर बेहतर है। – thinzar00