Мягкая клавиатура появляется только при фокусировке EditText ТОЛЬКО один раз

Спасибо за прочтение.

У меня возникла странная проблема: поведение моего приложения таково, что, когда начинается Activity , я requestFocus() на EditText и показываю мягкую клавиатуру.

Однако, когда я нажимаю кнопку «Назад», чтобы отменить клавиатуру и коснуться EditText я больше не слышу клавиатуру. Единственный выход – это снова запустить Activity .

Вот как выглядит мой код:

 EditText editText = (EditText) findViewById(R.id.editText); editText.requestFocus(); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if(imm != null) { imm.toggleSoftInput(0, 0); imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED); } 

И вот мой XML:

 <EditText android:id="@+id/editText" android:layout_width="wrap_content" android:imeOptions="actionSearch" android:hint="Test Hint" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:maxLength="30"> </EditText> 

Любая помощь будет принята с благодарностью!

Благодаря!

Solutions Collecting From Web of "Мягкая клавиатура появляется только при фокусировке EditText ТОЛЬКО один раз"

Попробуйте открыть и скрыть внутри Runnable as,

ОТКРЫТЬ

  ettext.requestFocus(); ettext.postDelayed(new Runnable() { @Override public void run() { InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); keyboard.showSoftInput(ettext, 0); } },200); 

ЗАКРЫВАТЬ

  ettext.requestFocus(); ettext.postDelayed(new Runnable() { @Override public void run() { InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); keyboard.hideSoftInputFromWindow(ettext. getWindowToken(), 0); } },200); 

Вы использовали неверный вид для отображения окна ввода.

 EditText editText = (EditText) findViewById(R.id.editText); editText.requestFocus(); InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); if(imm != null) { imm.showSoftInput(editText, 0); } 

попробуй это:

 final InputMethodManager imm = (InputMethodManager)EnterWordsActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null) { imm.toggleSoftInput(YOUE_EDTITE_TEXT.SHOW_FORCED,1); } 

Используется это кодирование в вашей деятельности, оно скроет вашу клавиатуру this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);