2011-10-22 12 views
26

मैं एकल विकल्प सूची या अलर्टडिअलॉग के अंदर एकाधिक विकल्प सूची सेट करने में सक्षम नहीं हूं।अलर्टडिअलॉग के अंदर सिंगल चॉइस आइटम कैसे सेट करें?

मैंने उदाहरणों का पालन करने की कोशिश की लेकिन मुझे केवल शीर्षक, ठीक और रद्द बटन, और कोई सूची, और कोई संदेश (जो मैंने सेट किया है) के साथ एक संवाद प्राप्त किया।

protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case DIALOG_DELETE_CITY: 
     CharSequence[] array = {"Red", "Blue", "Yellow"}; 
     return new AlertDialog.Builder(ShowPypData.this) 
      .setTitle(R.string.city_actions_delete_label) 
      .setMessage(R.string.city_actions_delete_select_label) 
      .setSingleChoiceItems(array, -1, new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         // TODO Auto-generated method stub 

        } 
       }) 
      .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 

       } 

      }) 
      .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 

       } 
      }).create(); 
    default: 
     return null; 
    } 

} 

अजीब बात यह है कि अगर मैं setSingleChoiceItems हिस्सा टिप्पणी, मैं संवाद पर संदेश देख सकते हैं:

यहाँ कोड है।

उत्तर

39

लगता है कि बटन, संदेश और एकाधिक विकल्प आइटम पारस्परिक रूप से अनन्य हैं। SetMessage, setPositiveButton और setNegativeButton पर टिप्पणी करने का प्रयास करें। इसे खुद की जांच नहीं की।

+7

आप पूरी तरह से सही हो, setMessage, setSingleChoiceItems और setMultiChoiceItems सभी परस्पर अनन्य हैं होना चाहिए। इसके बजाय बटन का उपयोग सभी प्रकार के अलर्टडियलोग के साथ किया जा सकता है। इसलिए आपका धन्यवाद! –

+1

http://developer.android.com/guide/topics/ui/dialogs.html से "क्योंकि सूची संवाद के सामग्री क्षेत्र में दिखाई देती है, इसलिए संवाद एक संदेश और सूची दोनों नहीं दिखा सकता है और आपको इसके लिए एक शीर्षक निर्धारित करना चाहिए setTitle() के साथ संवाद। " – SoloPilot

+0

यह मदद कर सकता है http://stackoverflow.com/questions/5660887/how-to-select-a-entry-in-alertdialog-with-single-choice-checkbox-android – jettimadhuChowdary

-4

यह सरणी और नहीं जो

public void onClick(DialogInterface dialog, int array) 
+0

गलत; http://developer.android.com/reference/android/content/DialogInterface.OnClickListener.html#onClick(android.content.DialogInterface, int) दूसरा पैरामीटर संदर्भित करता है कि बटन किस बटन दबाया गया था, जैसे कि BUTTON1। –

+6

हाह किस तरह का समाधान है? "आपका ऐप काम नहीं कर रहा है क्योंकि आपके पास गलत चर नाम है!" RLY? – Antoniossss

1

इस कोड काम करता है के लिए मुझे

final CharSequence[] charSequence = new CharSequence[] {"As Guest","I have account here"}; 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Buy Now") 
       //.setMessage("You can buy our products without registration too. Enjoy the shopping") 
       .setSingleChoiceItems(charSequence, 0, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         utility.toast(" "+charSequence); 
        } 
       }) 
     .setPositiveButton("Go", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.dismiss(); 
      } 
     }); 
     builder.create().show() 
संबंधित मुद्दे