Урок 63. Диалоги. AlertDialog. Список с одиночным выбором

Обсуждение уроков
vyk_spartak
Сообщения: 1
Зарегистрирован: 09 фев 2015, 22:27

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение vyk_spartak » 11 фев 2015, 15:03

Я только начинаю программировать.
В ListView я отображаю базу данных склада (деталь, количество, масса, в какой зоне склада деталь лежит). Хочу сделать фильтр к этой базе. Фильт будет работать по двум параметрам. Первый параметр - взвешена деталь или нет, а второй параметр - зона склада, где деталь лежит. Получаются как бы два списка с одиночным выбором. Хотел задавать параметры фильтра в диалоговом окне. Можно ли в диалоговом окне сделать два списка с одиночным выбором? Если нельзя сделать, то где можно разместить два списка с одиночным выбором? Новое Activity делать не хочется.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение doter.ua » 11 фев 2015, 15:12

Сделай свой кастомный диалог и укажи ем свой ХМЛ макет с двумя спиннерами. http://stackoverflow.com/questions/1974 ... lertdialog
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение Foenix » 11 фев 2015, 15:35

vyk_spartak писал(а):Я только начинаю программировать.
В ListView я отображаю базу данных склада (деталь, количество, масса, в какой зоне склада деталь лежит). Хочу сделать фильтр к этой базе. Фильт будет работать по двум параметрам. Первый параметр - взвешена деталь или нет, а второй параметр - зона склада, где деталь лежит. Получаются как бы два списка с одиночным выбором. Хотел задавать параметры фильтра в диалоговом окне. Можно ли в диалоговом окне сделать два списка с одиночным выбором? Если нельзя сделать, то где можно разместить два списка с одиночным выбором? Новое Activity делать не хочется.
на диалоге можно отобразить все что угодно как и на активити - это раз
второе - тебе по первому параметру нужны радиогруппа с двумя радиобаттонами плюс по второму - компонент спиннер (выпадающий список).
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

K_Vladimir
Сообщения: 36
Зарегистрирован: 28 июн 2015, 03:13

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение K_Vladimir » 15 июл 2015, 13:45

Добрый день!

Подскажите пожалуйста по уроку: Правильно ли я добавил в код
закрытие диалога по нажатию на список?

Код: Выделить всё

// обработчик нажатия на пункт списка диалога или кнопку
    OnClickListener myClickListener = new OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            ListView lv = ((AlertDialog) dialog).getListView();
            if (which == Dialog.BUTTON_POSITIVE) {
                // выводим в лог позицию выбранного элемента
                 Log.d(LOG_TAG, "pos = " + lv.getCheckedItemPosition());
            } else {
                // выводим в лог позицию нажатого элемента
                Log.d(LOG_TAG, "which = " + which);
                //  Программно нажимаем на кнопку
                ((AlertDialog) dialog).getButton(Dialog.BUTTON_POSITIVE).callOnClick();
            }
        }
    };

Правильно ли вызывается программное нажатие на кнопку?
Приложение хоть и работает, но callOnClick() подчёркнут красным
Call requires API level 15 (current min is 14): android.view.View#callOnClick less... (Ctrl+F1)
Неужели нажать на кнопку стало возможным только после выхода 15 API? И как сделать, чтобы работало на более ранних?
А эмуляция нажатия (вызов метода) this.onClick(dialog, Dialog.BUTTON_POSITIVE); почему-то не закрывает диалог.
Каким методом в этом случае закрывать диалог?

Большое спасибо.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение klblk » 15 июл 2015, 14:50

K_Vladimir писал(а):Каким методом в этом случае закрывать диалог?
Непонятно чего вы хотите достичь из описания. Если проблема в закрытии диалога:
[syntax=java]dialog.dismiss(); //or dialog.cancel()[/syntax]

K_Vladimir
Сообщения: 36
Зарегистрирован: 28 июн 2015, 03:13

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение K_Vladimir » 15 июл 2015, 21:49

klblk писал(а):
K_Vladimir писал(а):Каким методом в этом случае закрывать диалог?
Непонятно чего вы хотите достичь из описания. Если проблема в закрытии диалога:
[syntax=java]dialog.dismiss(); //or dialog.cancel()[/syntax]
Спасибо.
Я просто хотел сохранить выбор и завершить диалог по нажатию на пункт списка.
Здесь либо программно эмулировать нажатие кнопки. Либо, как вы уже просветили, использовать метод dismiss().
А нажатие кнопки я правильно делаю?
((AlertDialog) dialog).getButton(Dialog.BUTTON_POSITIVE).callOnClick();

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение klblk » 16 июл 2015, 05:23

K_Vladimir писал(а):
klblk писал(а):
K_Vladimir писал(а):Каким методом в этом случае закрывать диалог?
Непонятно чего вы хотите достичь из описания. Если проблема в закрытии диалога:
[syntax=java]dialog.dismiss(); //or dialog.cancel()[/syntax]
Спасибо.
Я просто хотел сохранить выбор и завершить диалог по нажатию на пункт списка.
Здесь либо программно эмулировать нажатие кнопки. Либо, как вы уже просветили, использовать метод dismiss().
А нажатие кнопки я правильно делаю?
((AlertDialog) dialog).getButton(Dialog.BUTTON_POSITIVE).callOnClick();
Если встаёт вопрос о программном нажатии кнопки, то определенно вы что-то делаете не правильно.

K_Vladimir
Сообщения: 36
Зарегистрирован: 28 июн 2015, 03:13

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение K_Vladimir » 19 июл 2015, 12:07

klblk писал(а):
K_Vladimir писал(а):
klblk писал(а):
K_Vladimir писал(а):Каким методом в этом случае закрывать диалог?
Непонятно чего вы хотите достичь из описания. Если проблема в закрытии диалога:
[syntax=java]dialog.dismiss(); //or dialog.cancel()[/syntax]
Спасибо.
Я просто хотел сохранить выбор и завершить диалог по нажатию на пункт списка.
Здесь либо программно эмулировать нажатие кнопки. Либо, как вы уже просветили, использовать метод dismiss().
А нажатие кнопки я правильно делаю?
((AlertDialog) dialog).getButton(Dialog.BUTTON_POSITIVE).callOnClick();
Если встаёт вопрос о программном нажатии кнопки, то определенно вы что-то делаете не правильно.
Но этот вариант работоспособен.
Вы не подскажите мне тогда: как правильно программно нажать на кнопку?
Может быть onclick(((AlertDialog) dialog).getButton(Dialog.BUTTON_POSITIVE)); ??

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение klblk » 20 июл 2015, 08:17

K_Vladimir писал(а):Но этот вариант работоспособен.
Вы не подскажите мне тогда: как правильно программно нажать на кнопку?
Может быть onclick(((AlertDialog) dialog).getButton(Dialog.BUTTON_POSITIVE)); ??
Зачем программно нажимать на кнопку? Сделайте свой метод, который будет вызываться и при нажатии на кнопку и там где бы вы хотели симулировать нажатие на эту кнопку.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 63. Диалоги. AlertDialog. Список с одиночным выборо

Сообщение Foenix » 20 июл 2015, 12:42

Кто-то тут сказал, что если вам нужно программно нажать на кнопку, значит вы делаете что-нибудь не так. Совершенно верное утверждение)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить