2010-12-05 4 views
1

У меня есть AlertDialog.Builder с кнопкой OK, кнопкой Cancel и EditText. Я хочу, чтобы пользователь не нажал «ОК» и отклонил диалог, пока они на самом деле не написали что-то в EditText.Предотвратите отклонение AlertDialog.Builder до тех пор, пока не будет выполнено условие

Диалог, кажется, автоматически отключается при нажатии любой из кнопок. Есть ли способ, которым я могу серо или отключить кнопку OK, пока не встречу условие?

Я думаю, что мне нужно будет выполнить специальный диалог, чтобы выполнить это. У кого-нибудь есть идеи? Благодаря!

ответ

1

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

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

1

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

+0

Я думаю, что это может сработать, но тогда я в основном собираюсь работать над диалоговым окном, и я также могу поцарапать AlertDialog. – user432209 2010-12-06 00:25:51

0

Я просто обошел строителя. Поскольку разработчик не дает вам доступ к самому компоновке, это может быть проблематично ... Вы всегда можете наследовать AlertDialog и устанавливать свои собственные кнопки и поведение, то, что вы хотите сделать, это использовать простой макет с двумя кнопок и textEdit, есть TextWatcher над текстовым редактированием, поэтому, когда txtedit не является длиной 0, кнопка ok отключена и имеет диалог с cancelable = false.

Смежные вопросы