style studio propiedades inputtype example edittext android override android-edittext

propiedades - gettext android studio



Android: ocultar el teclado en una pulsaciĆ³n de tecla "Done" anulada de EditText (4)

Por qué no:

myEditField.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { mySubroutine(); } return false; } });

Solo devuelve falso después de manejar tu código. Esto se puede interpretar ya que no importa cuál sea tu código (mySubroutine ()) aún usará la acción predeterminada después. Si devuelve "verdadero", está diciendo que es un codificador feliz y que todo lo que debe hacerse se ha realizado en su mySubroutine () y que la acción predeterminada no es necesaria.

He usado un poco del código de Android para anular el botón "Hecho" en mi campo EditText:

myEditField.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { mySubroutine(); return true; } return false; } });

Activar el campo activa el teclado, y presionar "Listo" evalúa mySubroutine () exitosamente. Sin embargo, el teclado ya no desaparece cuando presiono "Listo". ¿Cómo restauro este comportamiento predeterminado a la rutina?


Debe adjuntar un onClickListener al botón que ejecuta el siguiente código:

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


Puede cerrar el teclado haciendo:

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


Yo tuve el mismo problema. Inmediatamente después de que EditText VISIBILITY cambiara de GONE a VISIBLE, tuve que establecer el foco y mostrar el teclado virtual. Lo logré usando el siguiente código:

(new Handler()).postDelayed(new Runnable() { public void run() { yourEditText.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN , 0, 0, 0)); yourEditText.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP , 0, 0, 0)); } }, 200);