2013-02-13 16 views
33

मैं AlertDialog कि 4 बटनकैसे में एंड्रॉयड

OptionDialog = new AlertDialog.Builder(this); 
     OptionDialog.setTitle("Options"); 
     LayoutInflater li = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View v = li.inflate(R.layout.options, null, false); 
     background = (Button) v.findViewById(R.id.bkgSpinnerLabel); 
     SoundVib = (Button) v.findViewById(R.id.SoundVibSpinnerLabel); 

     OptionDialog.setView(v); 
     OptionDialog.setCancelable(true); 
     OptionDialog.setNeutralButton("Ok", 
       new DialogInterface.OnClickListener() { 

        public void onClick(DialogInterface arg0, int arg1) { 
        } 
       }); 
     background.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       SetBackground(); 
      // here I want to dismiss it after SetBackground() method 
      } 
     }); 


     SoundVib.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       Intent soundVibIntent = new Intent(SebhaActivity.this, EditPreferences.class); 
       startActivity(soundVibIntent); 
      } 
     }); 

     OptionDialog.show(); 

शामिल बनाया AlertDialog खारिज करने के लिए मैं के बाद SetBackground() विधि इसे खारिज करना चाहते हैं, कैसे मैं यह कर सकता है? अग्रिम धन्यवाद।

+2

कृपया पर, जावा नामकरण सम्मेलनों का उपयोग करें: तरीकों और चर नाम एक छोटा अक्षर के साथ शुरू करना चाहिए। – nhaarman

+0

संवाद.dismiss() का उपयोग करें; सेटबैकग्राउंड() के बाद; – saran

+0

@DanGeurts - 'AlertDialog.builder' कक्षा से कोई भी 'dismiss()' विधि नहीं है। – user370305

उत्तर

107

वास्तव में कोई भी cancel() या dismiss() AlertDialog.Builder क्लास से विधि नहीं है।

तो AlertDialog.Builder OptionDialog के बजाय AlertDialog उदाहरण का उपयोग करें।

की तरह,

AlertDialog OptionDialog = new AlertDialog.Builder(this).create(); 

अब, बस फोन OptionDialog.dismiss();

background.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     SetBackground(); 
     // here I want to dismiss it after SetBackground() method 
     OptionDialog.dismiss(); 
    } 
}); 
+0

वास्तव में अच्छा है, भाग महत्वपूर्ण है: "कोई नहीं बनाएं (AlertDialog.Builder OptionDialog = AlertDialog.builder (getActivity());) यदि नहीं बनाया गया है (AlertDialog OptionDialog = new AlertDialog.builder (this) .create();) के बाद आप .dismiss() को कॉल कर सकते हैं, बहुत अच्छा, धन्यवाद !!!!! – delive

+0

यहां एक नोट यह है कि 'OptionDialog' को उपरोक्त स्निपेट में ऑनक्लिक लिस्टरर को दिखाई देने की आवश्यकता है। ऐसा करने का एक तरीका है' अभिभावक गतिविधि वर्ग में सदस्य चर के रूप में AlertDialog'। –

6

इस प्रयास करें:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    AlertDialog OptionDialog = builder.create(); 
    background.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      SetBackground(); 
     OptionDialog .dismiss(); 
     } 
    }); 
+0

क्यों बिंदु कम हो गया है यह मेरे लिए काम किया गया है –

+0

मैंने पहले यह कोशिश की और मेरे लिए काम नहीं किया जब तक कि मैंने स्वीकार किए गए उत्तर में कोड का उपयोग नहीं किया। –

+0

ठीक है, मैंने थि लाइन को याद किया AlertDialog.builder builder = new AlertDialog.builder (this); अब उत्तर संपादित करें ... –

45

मुझे लगता है कि वहाँ एक सरल समाधान: बस DialogInterface तर्क यह है कि पारित हो जाता है का उपयोग करें onClick विधि पर।

AlertDialog.Builder db = new AlertDialog.Builder(context); 
     db.setNegativeButton("cancel", new DialogInterface.OnClickListener(){ 
      @Override 
      public void onClick(DialogInterface d, int arg1) { 
       d.cancel(); 
      }; 
     }); 

उदाहरण के लिए, http://www.mkyong.com/android/android-alert-dialog-example देखें।

+2

'd.dismiss(); 'मेरे लिए काम किया, और हां, यह AlertDialog – rupinderjeet

+1

के लिए अधिक सरल और मूल है टेर समाधान –

0

बस इस कोशिश -

OptionDialog.create().dismiss(); 

आशा इससे आपकी समस्या का समाधान होगा।

+0

यह नया उदाहरण बनाएगा और इसलिए वर्तमान में दिखाया गया संवाद बंद नहीं होगा। –

1

अलर्ट संवाद बंद करने के दो तरीके हैं।

विकल्प 1:

AlertDialog#create().dismiss();

विकल्प 2:

The DialogInterface#dismiss();

बॉक्स से बाहर

, ढांचा कॉल DialogInterface#dismiss(); जब आप बटन के लिए घटना श्रोताओं को परिभाषित:

  1. AlertDialog#setNegativeButton();
  2. AlertDialog#setPositiveButton();
  3. AlertDialog#setNeutralButton();
सूचना संवाद के लिए

0

यहाँ मैं कैसे बंद मेरी alertDialog

lv_three.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
      @Override 
      public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
       GetTalebeDataUser clickedObj = (GetTalebeDataUser) parent.getItemAtPosition(position); 
       alertDialog.setTitle(clickedObj.getAd()); 
       alertDialog.setMessage("Öğrenci Bilgileri Güncelle?"); 
       alertDialog.setIcon(R.drawable.ic_info); 
       // Setting Positive "Yes" Button 
       alertDialog.setPositiveButton("Tamam", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         // User pressed YES button. Write Logic Here 
        } 
       }); 
       alertDialog.setNegativeButton("İptal", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         //alertDialog. 
         alertDialog.setCancelable(true); // HERE 

        } 
       }); 
       alertDialog.show(); 
       return true; 
      } 
     }); 
0

बस अशक्त के रूप में मानना ​​है कि AlertDialog सरल बंद हो जाएगा सेट है।

0

अलर्टडिअलॉग को खारिज या रद्द करने के लिए।बिल्डर

dialog.setNegativeButton("إلغاء", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         dialogInterface.dismiss(); 
        } 
       }); 

आप खारिज फोन() संवाद इंटरफ़ेस