Me gustaría saber la mejor manera de ocultar el teclado después de ingresar el texto a EditText.La mejor manera de ocultar el teclado en Android
1) setonfocuschangelistener: ¿Este oyente se dispara solo, cuando se presiona el botón de hecho o cuando el foco cambia de un EditText a otro? Cuando utilicé este método, no pude ocultar el teclado.
2) setOnTouchListener: Cuando usé esto, pude ocultar el teclado, pero dudo que pueda haber un problema con esto. En este caso, agrego el oyente táctil a la raíz LinearLayout. Siguiente código que había utilizado:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
txtUserName = (EditText)findViewById(R.id.txtUserName);
btnLogin = (Button)findViewById(R.id.btnLogin);
layoutView = (LinearLayout)findViewById(R.id.li);
layoutView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(txtUserName
.getWindowToken(), 0);
return true;
}
});
}
Dentro del LinearLayout principal, estoy usando otras dos LinearLayouts. El problema que enfrenté con el código anterior es que en algunos momentos cuando presioné, el teclado no se oculta. Mi duda es que estoy agregando el oyente táctil solo con el diseño de la raíz, sin dar al oyente táctil otros diseños internos u otros controles (TextView). Cuando toco otros controles o algunos puntos alrededor de TextView (es decir, diseños internos), el teclado no se oculta.
Eso significa que necesito agregar touchListener a todos los diseños o controles dentro del diseño raíz? ¿Cómo se puede manejar esta situación de una mejor manera?
Gracias amigos por su respuesta. Podemos usar el código anterior para ocultar el teclado. El error que cometí es que en lugar de agregar el oyente táctil al diseño de la raíz, agregué el oyente táctil con uno de los diseños internos. Así que espero que este sea también el mejor método para ocultar el teclado, cuando tocamos fuera de EditText. Una vez más, gracias a todos por sus respuestas. Entonces, si algún usuario tiene el privilegio de marcar esto como una respuesta correcta, hágalo. Solo después de verificar el código. –