Как динамически изменить макет и поле AlertDialog - PullRequest
1 голос
/ 15 марта 2012

У меня есть один Spinner в AlertDialog. На первый взгляд их будет только на счетчике, и в нем три варианта:

  1. Добавить текстовую область,
  2. Добавить текст редактирования,
  3. Добавить переключатель.

Когда пользователь выберет любую опцию в sipnner, AlerDialog должен отобразить Область текста / Редактировать текст / Радио в AlertDialog под Spinner.

Любая помощь / ссылки

Спасибо

Ответы [ 3 ]

1 голос
/ 15 марта 2012

Вы можете сделать макет с помощью Text, Radio и т. Д. Установите для них свойство Visibility = GONE.После выбора значения из счетчика установите для обязательных полей свойство Visibility = VISIBLE.

1 голос
/ 15 марта 2012

Создайте представление XML Layout с помощью прядильщика и текста, редактируйте текст и переключатель. Вы устанавливаете видимость вашего текста, редактируете текст и переключатель в положение УДАЛЕНО.

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

this.setContentView(R.layout.yourLayout);

Теперь вы можете получить ссылки на ваши элементы, используя

(EditText) editText = (EditText) this.findViewById(R.id.editTextIdOnLayout);

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

1 голос
/ 15 марта 2012

Создать макет, что вы хотите, и установите его alertDialog.setContenView(R.layout.alertdialg);

...