Радиокнопки в AlertDialog не меняются при касании - PullRequest
0 голосов
/ 16 ноября 2011

Это скорее проблема UX, чем реальная проблема, но было бы неплохо, если бы я мог ее исправить.

Я создаю один выбор AlertDialog, аналогичный изображению ...

enter image description here

Код, который я использую для его создания, ...

private void createGuideViewChooserDialog() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Select Guide View");
    builder.setSingleChoiceItems(guideViewChooserDialogItems, currentGuideView, this);
    guideViewChooserDialog = builder.create();
    guideViewChooserDialog.show();
}

... поэтому в основном я использую int, называемый currentGuideView, чтобы установитькакой переключатель показывается как выбранный, и мой Activity реализует DialogInterface.OnClickListener, следовательно, используя this в вызове setSingleChoiceItems(...).

Слушатель onClick(...) выполняет некоторые простые действия на основе выбранного элементазатем вызывает guideViewChooserDialog.cancel().

Проблема, с которой я сталкиваюсь, заключается в том, что когда я касаюсь одного из элементов списка, элемент кратко выделяется, чтобы подтвердить касание, НО AlertDialog исчезает, не показывая изменения выбранного радио.-button.

Все работает нормально, и мой onClick(...) слушатель получает информацию о том, к какому предмету прикоснулись, но просто немного смущает, что диалог исчезает, не видя изменения выбора переключателя.

IЯ тестирую это на HTC Desire с Android v2.2.Это запланированное поведение или ошибка либо в v2.2, либо в реализации HTC?Могу ли я (или должен) что-то сделать, чтобы радиокнопка выбранного элемента правильно отображалась как выбранная до исчезновения диалога?

1 Ответ

0 голосов
/ 16 ноября 2011

Диалоговое окно сразу же закрывается, потому что это то, что вы, должно быть, настроили для него в DialogInterface.CnClickListener. Если вы не хотите, чтобы он был удален, добавьте кнопку, чтобы пользователь нажимал «ОК», подтверждая выбор радиостанции, а затем закрывал диалоговое окно.

...