¿Cómo detener el teclado en pantalla androide de llegar nunca en toda mi solicitud

StackOverflow https://stackoverflow.com/questions/2429595

  •  19-09-2019
  •  | 
  •  

Pregunta

Estoy desarrollando una aplicación en un dispositivo de hardware que tiene un teclado incorporado en el hardware que no deslice hacia afuera también lo es siempre visible (como una mora). Por lo tanto, no quiero volver el teclado en pantalla para mostrar toda mi solicitud. Soy consciente de otra cuestión de forma que da el siguiente líneas de código:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

Pero no sé dónde poner este código para ocultar el teclado en pantalla en todos los lugares en los que, posiblemente, podría aparecer en mi actividad. He intentado agregar el código para Activity.onUserInteraction en vano. Parece que aparezca el teclado después onUserInteraction la ejecuta.

También intentado añadir lo siguiente a mi <Activity>:

<activity 
    android:windowSoftInputMode="stateAlwaysHidden"
>

todavía aparece el teclado de software.

¿Fue útil?

Solución

Su aplicación no debe hacer nada. El firmware del dispositivo debe contener una configuración que inhibe el teclado de software basado en ser visible el teclado de hardware, al igual que cualquier otro dispositivo Android que cuenta con un teclado de hardware. Si eso no está ocurriendo, hablar con el fabricante de hardware y ver si están pensando en hacer frente a esto.

Otros consejos

Una solución fácil para la presentación de mañana:

Me gustaría crear un nuevo IME con una vista vacía. Aquí hay dos proyectos de código abierto para que mire algo de código.

Si desea saber más acerca de los métodos de entrada, vaya a Creación de un método de entrada .

Si un EditarTexto tiene una inputType de 0, el teclado en pantalla no aparecerá si se selecciona que EditarTexto.

EditText editText = findViewById(R.id.edit_text);
editText.setInputType(0);

Esto, por supuesto hay que hacer para todos los EditTexts en su aplicación, o siempre se podría subclase EditarTexto y establecer el tipo de entrada a 0 en su constructor.

Al establecer el parámetro XML inputType no va a hacer, ya que corresponde a una llamada al método setRawInputType, lo que no quita la KeyListener.

Lo resuelto reemplazando onCheckIsTextEditor método en mi un bit-aduana EditarTexto.

@Override
public boolean onCheckIsTextEditor() {
    return false;
}

Donde quiera que usted tiene Editar texto, poner este código ..

edittext.setInputType(InputType.TYPE_NULL);      
if (android.os.Build.VERSION.SDK_INT >= 11)   
{  
    edittext.setRawInputType(InputType.TYPE_CLASS_TEXT);  
    edittext.setTextIsSelectable(true);  
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top