Как предотвратить открытие софт-клавиатуры при запуске активности в Android? - PullRequest
36 голосов
/ 14 июня 2010

В приложении Android при каждом запуске действия текстовое поле получает фокус, а программная клавиатура автоматически появляется.Я пытался остановить это, используя следующую строку в методе onCreate, но он не работает.

((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(EditText.getWindowToken(), 0);

Ответы [ 6 ]

106 голосов
/ 14 марта 2011

Я знаю, что это старо, но, возможно, это поможет кому-то в будущем ...

Я не видел, чтобы кто-нибудь предлагал "stateHidden"

Из документов Android -android: windowSoftInputMode

Ваш файл манифеста будет выглядеть так:

<activity
    ...
    android:windowSoftInputMode="stateHidden|adjustResize"
    ...
>
19 голосов
/ 14 июня 2010

Вы можете использовать следующую строку кода, чтобы убедиться, что клавиатура всплывает, только когда пользователь нажимает на EditText

Java

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

Kotlin

window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)

И

Вам необходимо добавить

android: windowSoftInputMode = "AdjustResize"

в тег активности в файле AndroidManifest.xml.

2 голосов
/ 14 июня 2010

Работает ли следующее?

// Find editor
EditText editWindowInstance = this.findViewById(R.id.MyEditWindow);

// close soft keyboard 
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(editWindowInstance.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
1 голос
/ 16 марта 2016

Вы можете поместить этот код в свой Activity.onCreate: . This.getWindow () setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Но я обнаружил, что самым надежным и понятным способом было просто сфокусироваться на другом представлении в вашей деятельности XML Layout

<Button
  android:id="@+id/mybutton">
  <requestFocus />
</Button>
0 голосов
/ 25 июня 2014

Это будет отлично работать, попробуйте это

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

И добавьте следующее в свой манифест.

android:windowSoftInputMode="stateHidden|adjustResize"

ура наслаждайтесь кодированием ....

0 голосов
/ 15 июня 2010

У меня работает следующий код

((InputMethodManager) iClockActivity
                    .getSystemService(Context.INPUT_METHOD_SERVICE))
                    .showSoftInput(textView, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...