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

Android AlertDialog setOnDismissListener для API ниже 17

Я создал AlertDialog:

private CharSequence[] _items = { "item1", "item2", "item3", "item4",
"item5", "item6", "item7" };

AlertDialog.Builder daysBuilder = new AlertDialog.Builder(this);
    daysBuilder.setTitle("SomeCaption");

    daysBuilder.setMultiChoiceItems(_items,new Boolean[] { false, true, false, 
false false false, true }, SetListener);
    daysBuilder.setPositiveButton("OK", OKListener);
    daysBuilder.setNegativeButton("Cancel", CancelListener);

    AlertDialog alert = daysBuilder.create();
    alert.show();`

Через утверждение "new Boolean[] { false, true, false false false false, true }" элементы в диалоговом окне установите флажок/непроверено по умолчанию.

Когда я открываю диалоговое окно, измените выбор элементов, но затем отпустите (нажав кнопку "Отмена" или обратную кнопку на устройстве), диалог будет отклонен. Пока все хорошо.

Но когда я снова открываю диалог, элементы имеют проверенное/непроверенное состояние предыдущих изменений с последнего открытия диалога.

Но когда диалог был уволен в первом открытии, я хочу, чтобы элементы были проверены/не отмечены, например, когда я создал диалог (new Boolean[] { false, true, false false false false, true }).

Итак, в основном мне нужна возможность получить уведомление, когда диалог будет опробован, чтобы я мог reset состояние элементов.

Я попробовал его с помощью setOnDismissListener для объекта диалога. К сожалению, это доступно только в API 17.

setOnDismissListener работал идеально для меня (именно то, что мне нужно) в эмуляторе (API 17), но не на моем устройстве (Android 4.1 = > API 16)

Есть ли что-то подобное в API 16?

4b9b3361

Ответ 1

Проблема в том, что вы используете setOnDismissListener для AlertDialog.Builder. Это было введено на уровне Api 17, setOnDismissListener of AlertDialog сам был с уровня api 1.

AlertDialog alert = daysBuilder.create();
alert.setOndismissListener(yourdismisslistener);
alert.show();`