Подтвердить что ты не робот

Как установить отдельные элементы выбора внутри AlertDialog?

Мне не удалось установить список "Один выбор" или "Список нескольких вариантов" внутри AlertDialog.

Я пробовал следовать примерам, но я получаю только диалоговое окно с титрами, кнопками "ОК" и "Отмена", без списка, и "НЕТ" (которое я установил!).

Вот код:

    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, я могу увидеть сообщение в диалоговом окне.

4b9b3361

Ответ 1

Кажется, что элементы Button, Message и Multiple choice являются взаимоисключающими. Попробуйте прокомментировать setMessage, setPositiveButton и setNegativeButton. Не проверял сам.

Ответ 2

этот код работает для меня

 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()

Ответ 3

Он должен быть массивом, а не тем, который

public void onClick(DialogInterface dialog, int array )