दिलचस्प पोस्ट
jQuery के ईवेंट। लोड (), .ready (), .inload () स्विंग जेकॉम्नेन्ट्स में अंश का रेंडरिंग कैसे करें स्प्रिंग एमवीसी नियंत्रक में गतिशील यूआरएल / पीआर / नोटिस / 2 को कैसे मैप करें क्रोम: अवैध स्व हस्ताक्षरित एसएसएल प्रमाणपत्र – "विषय वैकल्पिक नाम लापता" क्यों नहीं AngularJS डॉक्स मॉडल निर्देश में एक डॉट का उपयोग करते हैं? OOP बनाम कार्यात्मक प्रोग्रामिंग बनाम प्रक्रियात्मक यदि ब्राउज़र इंटरनेट एक्सप्लोरर है: इसके बजाय एक वैकल्पिक स्क्रिप्ट चलाएं पायथन में पूर्णांक कैसे गोल करें जावास्क्रिप्ट के साथ एक पृष्ठ के नीचे स्क्रॉल करते समय निर्धारित करना jQuery UI – बंद संवाद जब बाहर क्लिक किया गया PHP memory_limit बढ़ाना किस बिंदु पर यह पागल हो जाता है? ggplot2 में प्रत्येक facet_wrap ग्रिड के लिए एक किंवदंती रखें मशीन पर सभी आईपी पते प्राप्त करें strstr नहीं कामकाज एकाधिक इनपुट पर अधिकतम आइटम कैसे सीमित करें (<input type = "file" multi />)

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

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

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

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

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

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

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

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

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 } });