Мне нравится, чтобы мои пользовательские интерфейсы были интуитивно понятными; каждый экран должен естественно и ненавязчиво вести пользователя к следующему шагу в приложении. За исключением этого, я стараюсь делать вещи как можно более запутанными и запутанными.
Шучу: -)
Я ' У нас есть три TableRow
, каждая из которых содержит элемент управления EditText, доступный только для чтения и не требующий фокусировки, а затем кнопку справа от него. Каждая кнопка запускает одно и то же действие, но с другим аргументом. Пользователь делает выбор там, и под-действие завершается, заполняя соответствующий EditText
выбранным пользователем.
Это классический механизм каскадных значений; каждый выбор сужает доступные параметры для следующего выбора и т. д. Таким образом, я отключаю оба элемента управления в каждой из следующих строк, пока EditText в текущей строке не будет содержать значение.
Мне нужно сделать одно из двух, в следующий порядок предпочтения:
Проблема проявляется после возврата вспомогательного действия; нажатая кнопка сохраняет фокус.
Re: # 1 выше - похоже, что нет метода removeFocus ()
или чего-то подобного
Re: # 2 выше - я могу используйте requestFocus ()
, чтобы установить фокус на кнопку в следующей строке, и это работает после возврата вспомогательного действия, но по какой-то причине не работает в родительском действии onCreate ()
.
Мне нужна согласованность пользовательского интерфейса в любом направлении - либо кнопки не имеют фокуса после завершения под-действия, либо каждая кнопка получает фокус в зависимости от своего места в логическом потоке, включая самый первый (и единственный) активный кнопку перед любым выбором.