запретите EditText показывать SoftKeyboard когда фокус - PullRequest
2 голосов
/ 17 февраля 2012

Ну, это сводит меня с ума ... Я уже прочитал ЭТО , ЭТО и ЭТО , но у меня ничего не работает.

СЦЕНАРИЙ
Это сценарий: мое приложение для опросов считывает опрос из файла конфигурации, вопросы могут иметь один, несколько или текстовые ответы.
В первом случаея добавляю RadioButtons к активности, во втором случае - флажки, а в третьем случае - многострочный EditText.

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

В настоящее время в первый раз, когда первый EditText получает фокус, клавиатура всплывает и остается, даже если пользователь продолжает прокручивать вниз (и даже когда проклятый EditText окончательно потерял фокус).

ВОПРОС
Как я могу иметь EditText, который показывает клавиатуру ТОЛЬКО КОГДА ЕГО НАЖИМАЕТ пользователем и НЕ когда получает только фокус?

ENVIRO
API уровня 13 (Сота)

Заранее спасибо
Лоренцо (серьезно рассматривает вопрос открытия ресторана)

Ответы [ 2 ]

5 голосов
/ 18 февраля 2012

В вашем методе onCreate (..) вы можете установить неуправляемый элемент управления EditText, используя

EditText.setFocusable(false);

Это должно препятствовать отображению клавиатуры при прокрутке. В вашем onClickListener (..) вы можете включить его, используя

EditText.setFocusableInTouchMode(true);
EditText.requestFocus();
1 голос
/ 17 февраля 2012

Попробуйте поместить свойство

android:descendantFocusability="blocksDescendants"

в контейнер scrollView

...