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