AlertDialog с селектором - PullRequest
       51

AlertDialog с селектором

11 голосов
/ 22 декабря 2011

Я пытаюсь сделать диалог с селектором, который выглядит именно так:

AlertDialog with selector

Я пытался использовать AlertDialog, который содержит ListView, но который дает уродливую черную границу между ListView и нижней серой областью. Я мог бы использовать обычный диалог, но я не хочу строить нижнюю серую область вручную.

Я знаю, что могу разделить AlertDialog на подклассы, но тогда мне также понадобится создать подкласс Builder, и в итоге получится много кода для такой маленькой детали. Есть ли какой-нибудь аккуратный способ сделать это?

Приветствия

Ответы [ 2 ]

37 голосов
/ 22 декабря 2011

Используйте диалоговое окно оповещения, у него есть опции для этого.Краткий пример:

AlertDialog.Builder adb = new AlertDialog.Builder(this);
CharSequence items[] = new CharSequence[] {"First", "Second", "Third"};
adb.setSingleChoiceItems(items, 0, new OnClickListener() {

        @Override
        public void onClick(DialogInterface d, int n) {
            // ...
        }

});
adb.setNegativeButton("Cancel", null);
adb.setTitle("Which one?");
adb.show();

См. Диалоги , документ , раздел Добавление списка .

4 голосов
/ 23 ноября 2016

Вы должны использовать следующий код для выбора одного элемента. Это рабочий код

CharSequence colors[] = new CharSequence[]{"View PDF", "Reduce Size", "Delete PDF", "Share PDF"};

            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Select Option");
            builder.setItems(colors, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Log.e("value is", "" + which);
                    switch (which) {
                        case 0:
                            break;
                        case 1:
                            break;
                        case 2:
                            break;
                        case 3:
                            break;
                    }
                }
            });
            builder.show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...