У меня есть диалоговое окно с предупреждением, что у меня есть 2 текстовых поля, а затем кнопка Положительный и Отрицательный.
Я пытался установить nextFocusDown в конечном текстовом поле на ВСЕГДА быть положительной кнопкой.
Положительные и отрицательные кнопки располагаются рядом друг с другом под вторым текстовым полем, и если курсор для пользовательского ввода был над левой кнопкой, следующий фокус переместился бы влево, если бы он был над правой кнопкой.он переместился бы на правую кнопку.
Поэтому я использую свой конструктор оповещений, чтобы СОЗДАТЬ диалог оповещения, а затем попытался вызвать
myAlertDialog.getButton (DialogInterface.BUTTON_POSITIVE);а затем установите в полях ExitText nextFocusDownId идентификатор этой кнопки.
и сделайте это до того, как я покажу предупреждение пользователю, чтобы у меня не было ни малейшего шанса на какие-либо условия гонки.
Увы, ad.getButton возвращает значение NULL каждый раз.Когда я перемещаю эти строки кода после вызова ad.show (), все работает отлично.
Итак, я думаю, у меня есть вопрос, может ли кто-нибудь объяснить это мне.Я бы подумал, что после того, как я установил ПОЗИТИВНУЮ КНОПКУ и создал AlertDialog, представление должно существовать, но не быть видимым ... очевидно, это не тот случай, поэтому ничто, кроме DisplayWidget, не создается до тех пор, пока представление фактически не отобразится какобщее правило?Когда взгляды завышены, я могу найти объекты внутри них, прежде чем я их покажу.Так каково общее эмпирическое правило относительно этого?