показывать клавиатуру программно Android

#android #android-softkeyboard

#Android #android-программная клавиатура

Вопрос:

Есть ли способ показать клавиатуру в Activity выше версии Android O? У меня есть следующий код :

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
  

Это работает «только» для версии ниже Android O.

Ответ №1:

У меня есть 2 варианта для вас. Во-первых, вы можете использовать requestFocus

 editText.requestFocus();
  

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

 android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, android.view.inputmethod.InputMethodManager.SHOW_IMPLICIT);
  

Дополнительная точка, используйте это, чтобы скрыть клавиатуру:

 android.view.View view = this.getCurrentFocus();   
android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
  

Примечание: каждый код здесь протестирован и работает.

Ответ №2:

Чтобы показать клавиатуру,

 InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
  

Если вы хотите сосредоточиться на редактируемом тексте, используйте

 editText.requestFocus();
  

Чтобы скрыть клавиатуру,

 InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(editText.getWindowToken(), 0);
  

Комментарии:

1. это устарело