Как сохранить мягкую клавиатуру от открытия активности в Android?

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

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

Ответ 1

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

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

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

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

<activity
    ...
    android:windowSoftInputMode="stateHidden|adjustResize"
    ...
>

Ответ 2

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

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

и

Вам нужно добавить

android: windowSoftInputMode = "adjustResize"

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

Ответ 3

Выполняется ли следующее?

// 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); 

Ответ 4

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

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

<Button
  android:id="@+id/mybutton">
  <requestFocus />
</Button>

Ответ 5

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

((InputMethodManager) iClockActivity
                    .getSystemService(Context.INPUT_METHOD_SERVICE))
                    .showSoftInput(textView, 0);

Ответ 6

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

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

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

android:windowSoftInputMode="stateHidden|adjustResize"

cheers пользуются кодированием....