El teclado suave aparece en el foco EditText SOLAMENTE una vez

Gracias por leer.

Me enfrenta a un problema extraño: el comportamiento de mi aplicación es tal que cuando comienza la Activity , requestFocus() en un EditText y muestro el teclado EditText .

Sin embargo, cuando EditText el botón Atrás para cerrar el teclado y EditText , no obtengo el teclado para que vuelva a aparecer. La única salida es comenzar nuevamente la Activity .

Así es como se ve mi código:

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

Y aquí está mi XML:

   

¡Cualquier ayuda sería muy apreciada!

¡Gracias!

Intenta abrir y esconder dentro de Runnable como,

ABRIR

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

CERRAR

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

Usó la vista incorrecta para mostrar la ventana de entrada.

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

prueba esto:

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

Usado esta encoding en su Actividad, this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); su teclado this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);