एंड्रॉइड में एक डायलॉग को खारिज या रद्द किए जाने के बीच क्या अंतर है?


193

जैसे शीर्षक कहता है, एक संवाद को Android में खारिज या रद्द किए जाने के बीच क्या अंतर है?

जवाबों:


187

आमतौर पर, एक डायलॉग को खारिज कर दिया जाता है जब उसका काम खत्म हो जाता है और उसे स्क्रीन से हटा दिया जाता है। जब उपयोगकर्ता संवाद से बचना चाहता है और बैक बटन दबाता है तो एक संवाद रद्द कर दिया जाता है।

उदाहरण के लिए, आपके पास स्क्रीन पर एक मानक हां / नहीं संवाद है। यदि उपयोगकर्ता नंबर पर क्लिक करता है, तो संवाद खारिज कर दिया जाता है और कॉल करने वाले को नो के लिए मान वापस कर दिया जाता है। यदि हां या नहीं चुनने के बजाय, उपयोगकर्ता विकल्प चुनने के बजाय संवाद से बचने के लिए वापस क्लिक करता है तो संवाद रद्द कर दिया जाता है और कॉलर को कोई मान नहीं दिया जाता है।


उत्तर के लिए धन्यवाद। मैं यह सेट करने की कोशिश कर रहा हूं कि अगर उपयोगकर्ता किसी डेटपिकर पर रद्द बटन को धक्का देता है तो क्या होगा। पहले मैंने एक बर्खास्त श्रोता का उपयोग करने की कोशिश की, और यह काम किया, लेकिन यह भी हुआ अगर उपयोगकर्ता ने एक समय चुना। फिर मैंने एक श्रोता को रद्द करने की कोशिश की, और यह कभी भी बंद नहीं हुआ, भले ही मैंने रद्द कर दिया। क्या आप जानते हैं कि मुझे क्या करना चाहिए?
आल

2
यदि आप एक DatePickerDialog का उपयोग कर रहे हैं, तो आपको तारीख बदलने पर अधिसूचित होने के लिए एक OnDateSetListener का उपयोग करना चाहिए। यदि कोई रद्द करें बटन क्लिक करता है ... तो उसे कॉल नहीं किया जाएगा और संवाद अपने आप ही चला जाएगा। DatePickerDialog के सामान्य उपयोगों के लिए, आपको अन्य श्रोताओं को सेट करने की आवश्यकता नहीं है।
ली

FYI करें, पिछला बटन रद्द करने वाले श्रोता और बर्खास्त श्रोता दोनों को ट्रिगर करता है।
शहरी

28

dismissकुछ ऐसा है जिसे आपको अपने कोड में स्पष्ट रूप से कॉल करना है, आमतौर पर आपके बटन पर एक क्लिक घटना का जवाब देने के लिए Dialog। आप चाहें, तो आप कॉल कर सकते हैं dismissDialogमें Activity, जिसमें कॉल हो जाएगा dismissपरDialog

यह cancelविधि केवल तब निष्पादित होती है जब यह स्पष्ट रूप से आपके कोड में कहा जाता है, या जब उपयोगकर्ता आपके रद्द होने पर BACK बटन दबाता हैDialog पर खुला है (जैसा कि @Lee उल्लेख किया गया है)।

यदि आप एक का उपयोग कर रहे हैं DatePicker, तो यह सब अभी भी मामला है। जैसा कि @Lee ने कहा, DatePickerDialog.OnDateSetListenerबस यह पता लगाता है कि उपयोगकर्ता ने कब से तारीख चुनी हैDatePicker

Android डेवलपर संदर्भ में अधिक जानकारी प्रदान करता है Dialogरों।


आप cancelविधि भी कह सकते हैं । डिमिसिंग और रद्द करने के लिए दो अलग-अलग श्रोता हैं।
क्रिएटिव

12

Dismissबर्खास्तगी को बुलाकर स्क्रीन से संवाद को हटा दिया जाता है। यह विधि किसी भी धागे से सुरक्षित रूप से मंगाई जा सकती है। ध्यान दें कि संवाद को खारिज करने पर आपको सफाई करने के लिए इस पद्धति को ओवरराइड नहीं करना चाहिए, इसके बजाय इसे ऑनटॉप में लागू करें ।

Cancelरद्द करना, संवाद रद्द करना। यह अनिवार्य रूप से कॉल खारिज () के रूप में ही है , लेकिन यह आपके DialogInterface.OnCancelListener को भी कॉल करेगा , यदि पंजीकृत है।

Hide यह विधि संवाद को छिपाती है, लेकिन इसे खारिज नहीं करती है।

और यहाँ अधिक देखने के लिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.