How to set Single Choice Items inside AlertDialog?

Julian Suarez picture Julian Suarez · Oct 22, 2011 · Viewed 35.2k times · Source

I haven't been able to set a Single Choice list, or a Multiple Choice List inside an AlertDialog.

I tried following the examples but I only get a Dialog with a Title, the Ok and Cancel buttons, and no list, and NO message (which I set!).

Here is the code:

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

}

The weird thing is that if I comment the setSingleChoiceItems part, I can see the message on the dialog.

Answer

slkorolev picture slkorolev · Oct 22, 2011

Seems that Buttons, Message and Multiple choice items are mutually exclusive. Try to comment out setMessage(), setPositiveButton() and setNegativeButton(). Didn't check it myself.