2013-08-01 10 views
8

क्या मैं नकारात्मक या सकारात्मक बटन के बिना एक संवाद बॉक्स बना सकता हूं। यह विशिष्ट कार्रवाई के बाद स्वयं को नष्ट कर देता है?बटन के बिना एंड्रॉइड डायलॉग बॉक्स

AlertDialog.Builder dialog_detect= new AlertDialog.Builder(MainActivity.this); 
dialog.setTitle("Detecting....."); 
dialog.setMessage("Please Wait"); 
dialog.show(); 
+1

अपना खुद का कस्टम संवाद बनाएं और जब चाहें तो 'dismiss() 'विधि को कॉल करें। संदर्भ: http: //android-developers.blogspot.in/2012/05/using-dialogfragments.html – dakshbhatt21

+0

आप [यहां] से कस्टम संवाद का प्रयास कर सकते हैं (http://stackoverflow.com/questions/17994238/android-dialog- बॉक्स-बिना-बटन/17 994633 # 17 994633) –

उत्तर

12

आप इसे बहुत आसानी से कर सकते हैं।

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); 

// set title 
alertDialogBuilder.setTitle("Your Title"); 

// set dialog message 
alertDialogBuilder.setMessage("Message here!").setCancelable(false); 

// create alert dialog 
AlertDialog alertDialog = alertDialogBuilder.create(); 

// show it 
alertDialog.show(); 

// After some action 
alertDialog.dismiss(); 

आप कहीं और AlertDialog के लिए एक संदर्भ है, तो आप अभी भी alertDialog.dismiss() कॉल कर सकते हैं। यह संवाद बंद कर देता है।

+1

08-01 14: 45: 20.422: ई/एंड्रॉइड रनटाइम (10831): java.lang.NullPointerException आईटी यह त्रुटि देता है – user2401745

+1

आपको – crocboy

+0

पर क्या हो रहा है यह देखने के लिए आपको कुछ कोड पोस्ट करने की आवश्यकता होगी कम से कम नए एंड्रॉइड के संस्करणों के परिणामस्वरूप यह ठीक बटन के साथ एक संवाद में होता है। – nasch

2

आप किसी भी कार्रवाई के बाद alertDialog .dismiss() पर कॉल कर सकते हैं।

+0

जो प्रोग्राम को लाता है – user2401745

+0

चेतावनी डियालॉग के लिए वैश्विक सत्यापन के लिए परिभाषित करता है और जांचता है कि (alertDialog! = null) – KEYSAN

+0

वास्तव में मेरा उत्तर वही # क्रोकॉय की प्रतिक्रिया है। – KEYSAN

0

संवाद को दिखाने के लिए: -

ProgressDialog pd = ProgressDialog.show(context,"TITLE","MSG"); 

खारिज करने के लिए

pd.dismiss(); 
0

एक टाइमर लागू करें और यह सेट कुछ सेकंड के बाद DialogBox खारिज करने के लिए।

1

आप संवाद पर कस्टम संवाद डिजाइन उर कोशिश करते हैं और इसका इस्तेमाल के रूप में यू उन्हें

final Dialog dialog= new Dialog(context); 
dialog.setContentView(R.layout.pre_confirmation_dailog); 
dialog.setTitle("Details..."); 
dialog.show(); 
0

उपयोग करना चाहते हैं के रूप में आप

Dialog dialog_help = new Dialog(this); 
dialog_help.setContentView(R.layout.title_multi_selectitems_dialog); 
EditText et_1 = (EditText) dialog_help.findViewById(R.id.et_help_1); 
dialog_help.setCancelable(true); 
dialog_help.setTitle(" Help "); 
dialog_help.setCanceledOnTouchOutside(true); 
dialog_help.show(); 
dialog_help.getWindow().setGravity(Gravity.CENTER); 
dialog_help.getWindow().setLayout(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT); 
4

तरह आप कस्टम संवाद कोशिश कर सकते हैं वास्तव में क्या "कार्रवाई पर निर्भर करता है सकते हैं "का प्रदर्शन किया जा रहा है:


AlertDialog.Builder dialog_detect= new AlertDialog.Builder(MainActivity.this); 
dialog.setTitle("Detecting....."); 
dialog.setMessage("Please Wait"); 
dialog.show(); 

timeConsumingDetectMethod(); 

dialog.dismiss(); 

इस तरह आप timeConsumingDetectMethod() खत्म होने तक एक जमे हुए UI प्राप्त करते हैं।


हालांकि, निम्न तरीके पृष्ठभूमि में कार्रवाई चलाता है, जबकि एक बहुत ही संवेदनशील संवाद दिखाया जाता है। साथ ही, संवाद रद्द होने पर कार्रवाई को रद्द कर देता है।

AlertDialog.Builder builder = new AlertDialog.Builder(context); 

// set title 
builder.setTitle("Your Title"); 

// set dialog message 
builder.setMessage("Message here!").setCancelable(false); 

// create alert dialog 
AlertDialog alertDialog = builder.create(); 

// show it 
alertDialog.show(); 

// After some action 
alertDialog.dismiss(); 
0

crocboy's answer का सही कोड यह है

AlertDialog alertDialog = new AlertDialog.Builder(context)  
    .setTitle("Your Title") 
    .setMessage("Message here!") 
    .setCancelable(false) 
    .create(); 

alertDialog.show(); 

// After some action 
alertDialog.dismiss(); 

यह है बिल्कुल वही बात है, यह सिर्फ अधिक कॉम्पैक्ट है।

2

आप भी इस तरह crocboy के कोड लिख सकते हैं::

AsyncTask<Void,Void,Void> task = new AsyncTask<Void, Void, Void>() { 

     private AlertDialog dialog; 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      dialog= new AlertDialog.Builder(MainActivity.this); 
      dialog.setTitle("Detecting....."); 
      dialog.setMessage("Please Wait"); 

      dialog.setOnCancelListener(new DialogInterface.OnCancelListener() { 
       @Override 
       public void onCancel(DialogInterface dialogInterface) { 
        cancel(true); 
       } 
      }); 

      dialog.show(); 
     } 

     @Override 
     protected Void doInBackground(Void... voids) { 
      timeConsumingDetectMethod(); 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void aVoid) { 
      super.onPostExecute(aVoid); 
      dialog.dismiss(); 
     } 

    }.execute(); 
संबंधित मुद्दे