Удалить автофокус из EditText и восстановить фокус? - PullRequest
1 голос
/ 12 октября 2011

У меня есть EditText и набор кнопок в моем макете.Чтобы удалить автофокус из EditText, я использую фиктивную LinearLayout, как сказано в некоторых ответах на этом сайте.

Я хочу, чтобы текст редактирования получил фокус при нажатии кнопки и показе виртуальной клавиатуры.но при первом нажатии кнопки редактируемый текст получает фокус, но виртуальная клавиатура отображается только после повторного нажатия кнопки. Ну, проблема немного в другом, но есть идеи?Это то, что я делаю по нажатию кнопки:

b.setOnClickListener(new OnClickListener() {
    @Override
     public void onClick(View v) {
        // TODO Auto-generated method stub
         mgr.showSoftInput(main_edt,InputMethodManager.SHOW_FORCED);
     main_edt.requestFocus();
        } 
});

Это фиктивный линейный макет:

<LinearLayout 
    android:focusable="true" 
    android:id="@+id/dummyll"
    android:focusableInTouchMode="true" 
    android:layout_width="0px"
    android:layout_height="0px" />  

Если я не пишу этот фиктивный линейный макет или сделаю фокусируемые теги ложными,клавиатура отображается только при первом нажатии.

Ответы [ 2 ]

3 голосов
/ 12 октября 2011

Давайте попробуем установить следующие свойства в самом xml для EditText

android: focusableInTouchMode = "true" android: cursorVisible = "false".

Iнадеюсь, что это решит вашу проблему, если вы хотите скрыть программную клавиатуру при запуске, значит, используйте приведенный ниже код в своей активности getWindow (). setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

0 голосов
/ 12 октября 2011

Добавьте атрибут android:windowSoftInputMode="stateHidden" к активности в манифесте. Таким образом, программная клавиатура не будет отображаться при запуске упражнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...