दिलचस्प पोस्ट
एएसपी.नेट वेब एपीआई ऑपरेशन रद्द किया जाता है जब ब्राउज़र अनुरोध को रद्द करता है स्टैक, स्टेटिक, और हीप सी ++ में डेटाबेस में आप प्रभावशाली मॉडल कैसे प्राप्त कर सकते हैं? सफल पीईपी स्थापना के बाद आयात करें स्प्रिंग बूट युद्ध बिना बिलाव के एम्बेडेड एक स्थिर निर्माता क्या है? वर्णों को जावा में पूर्णांक में परिवर्तित करना प्रिंट मोड में तालिका शीर्षकों को दोहराएं मैं MSBUILD से .NET में संदर्भों के लिए CopyLocal (निजी) सेटिंग को ओवरराइड कैसे कर सकता हूं एंड्रॉइड खंड पर रिस्टोरइनस्टाइनस्टेट MySQL में "संपूर्ण शब्द मिलान" खोजें क्या उपयोगकर्ता अजगर स्क्रिप्ट विंडोज़ के रूप में चलते हैं? टैब-चौड़ाई निर्दिष्ट करना? एक शाखा से सभी कमानों को खींचें, निर्दिष्ट प्रतिबद्धता को दूसरे में दबाएं जावास्क्रिप्ट सेट img src

बाहरी स्पर्श को बंद करने से एंड्रॉइड गतिविधि संवाद रोकें

मेरे पास एक ऐसी गतिविधि है जो Theme.Dialog शैली का उपयोग कर रही है, जैसे कि यह एक अन्य गतिविधि पर फ़्लोटिंग विंडो है। हालांकि, जब मैं संवाद विंडो के बाहर क्लिक करता हूं (पृष्ठभूमि की गतिविधि पर), तो संवाद बंद हो जाता है मैं इस व्यवहार को कैसे रोक सकता हूं?

वेब के समाधान से एकत्रित समाधान "बाहरी स्पर्श को बंद करने से एंड्रॉइड गतिविधि संवाद रोकें"

यह आपकी सहायता कर सकता है यह ईवेंट के बाहर टच को संभालने का एक तरीका है:

विंडो के बाहर छुआ गतिविधि की तरह डायलॉग थीम को कैसे रद्द करें?

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

(पीएस: कोड विंडो मैनेजर। लेआउटपारम्स का उपयोग करता है)

संवाद बॉक्स को रोकने के लिए वापस दबाए गए बटन पर खारिज होने से इसका उपयोग करें

dialog.setCancelable(false); 

और डायलॉग बॉक्स को बाहरी स्पर्श पर खारिज होने से रोकने के लिए इसका इस्तेमाल करें

  dialog.setCanceledOnTouchOutside(false); 

जो वास्तव में आपके पास है वह एक गतिविधि है (भले ही वह एक संवाद की तरह लग रहा हो), इसलिए आपको अपनी गतिविधि से setFinishOnTouchOutside(false) को कॉल करना चाहिए यदि आप पृष्ठभूमि गतिविधि पर क्लिक करते समय इसे खोलना चाहते हैं।

संपादित करें: यह केवल एंड्रॉइड एपीआई स्तर 11 या उससे अधिक के साथ काम करता है

मेरे लिए क्या काम किया गया था संवाद बनाने के लिए यह एक सेट है जिसे रद्द करने योग्य नहीं है:

dialog.setCancelable (गलत);

उच्च एपीआई 10 के लिए, डायलॉग गायब हो जाता है जब बाहर छुआ जाता है, जबकि एपीआई 11 से कम में, डायलॉग गायब नहीं होता है। इसे रोकने के लिए, आपको यह करना होगा:

styles.xml : <item name="android:windowCloseOnTouchOutside">false</item>

या

onCreate() विधि में, उपयोग करें: this.setFinishOnTouchOutside(false);

नोट: एपीआई 10 और निम्न के लिए, इस पद्धति का प्रभाव नहीं है, और इसकी आवश्यकता नहीं है।

इस कोड का प्रयोग करें यह मेरे लिए काम करना है

  AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); alertDialog.setCancelable(false); 

 Dialog dialog = new Dialog(context) dialog.setCanceledOnTouchOutside(true); //use this to dismiss the dialog on outside click of dialog dialog.setCanceledOnTouchOutside(false); //use this for not to dismiss the dialog on outside click of dialog. 

संवाद के बारे में अधिक जानकारी के लिए यह लिंक देखें ।

 dialog.setCancelable(false);//used to prevent the dismiss of dialog on backpress of that activity dialog.setCancelable(true);//used to dismiss teh dialog on onbackpressed of that activity 

सीधे शब्दों में,

 alertDialog.setCancelable(false); 

उपयोगकर्ता को डायलॉग बॉक्स के बाहर क्लिक करने से रोकें

गलत होने योग्य cancelable संवाद सेट करना पर्याप्त है, और या तो आप चेतावनी संवाद के बाहर स्पर्श करते हैं या वापस बटन पर क्लिक करें, चेतावनी संवाद गायब हो जाएगा। तो इसका उपयोग करें:

setCancelable(false)

और अन्य फ़ंक्शन अब आवश्यक नहीं है: dialog.setCanceledOnTouchOutside(false);

यदि आप एक अस्थायी संवाद बना रहे हैं और सोच रहे हैं कि कोड की इस पंक्ति को डालने के लिए, यहां एक उदाहरण है:

 new AlertDialog.Builder(this) .setTitle("Trial Version") .setCancelable(false) .setMessage("You are using trial version!") .setIcon(R.drawable.time_left) .setPositiveButton(android.R.string.yes, null).show(); 

मैं इसका उपयोग क्रेता () में करता हूं, एंड्रॉइड के किसी भी संस्करण पर काम करने लगता है; 5.0 और 4.4.x पर परीक्षण किया गया, जिंजरब्रेड पर परीक्षण नहीं किया जा सकता, सैमसंग डिवाइस (नोट 1 चलने वाला जीबी) इसे डिफ़ॉल्ट रूप से इस तरह से है:

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { setFinishOnTouchOutside(false); } else { getWindow().clearFlags(LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH); } super.onCreate(savedInstanceState); 

एपीआई> 11 के लिए setFinishOnTouchOutside(false) उपयोग करें> और चिंता न करें क्योंकि इसके एंड्रॉइड के डिफ़ॉल्ट व्यवहार के अनुसार गतिविधि थीम्ड संवाद एपीआई <11 🙂 के लिए बाहरी स्पर्श पर पूरा नहीं होगा !!

  alert.setCancelable(false); alert.setCanceledOnTouchOutside(false); 

मुझे लगता है यह तुम्हारी मदद करेगा। यह मेरे लिए काम किया

यहां मेरा समाधान है:

 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Select The Difficulty Level"); builder.setCancelable(false); 

जब ऑन-क्रेलेट में एक गतिविधि के रूप में डायलॉग का इस्तेमाल करते हैं तो यह जोड़ें

 setFinishOnTouchOutside(false); 

मुझे एक ही समस्या का सामना करना पड़ रहा था। इसे संभालने के लिए मैंने OntouchListener करने के लिए OntouchListener सेट किया है और इसमें कुछ भी नहीं है लेकिन स्क्रीन को भी घूर्णन करते समय डायलॉग डिसमिस होता है। इसे ठीक करने के लिए मुझे बताइए कि डायलॉग को सामान्य रूप से खारिज कर दिया गया है, तो मुझे एक चर सेट किया गया है। तब मैंने अपने संवाद पर एक OnDismissListener सेट किया था और अंदर मैं चर को OnDismissListener हूं। अगर संवाद सामान्य रूप से अपव्यय होता है, तो मैं नहीं करता, या फिर मैं फिर से संवाद चलाता हूं (और अपने मामले को खारिज करते समय मेरे मामले में खारिज करते हुए)।

builder.setCancelable (गलत);


सार्वजनिक शून्य Mensaje (देखें वी) {

  AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("¿Quieres ir a el Menú principal?"); builder.setMessage("Al presionar SI iras a el menú y saldras de la materia."); builder.setPositiveButton("SI", null); builder.setNegativeButton("NO", null); builder.setCancelable(false); builder.show(); } 

रद्द करने पर अलग-अलग क्रिया लागू करने के साथ-साथ संभव है:

 alertDialog.setOnCancelListener(new DialogInterface.OnCancelListener(){ @Override public void onCancel(DialogInterface dialogInterface) { //Your custom logic } });