Make editText perder el foco en la parte posterior de la prensa

En mi actividad, tengo un campo editText. Cuando el usuario hace tapping en él, el editText gana el foco y aparece el teclado. Ahora, cuando el usuario presiona el botón de hardware atrás en el teléfono, el teclado desaparece, pero el cursor permanece en el Editext, es decir, todavía tiene el foco. ¿Es posible hacer que el EditText pierda el foco cuando se pulsa el botón Back? He intentado usar el siguiente código, pero no funcionó:

@Override public void onBackPressed() { vibrator.vibrate(Constants.DEFAULT_VIBRATE_TIME); myEditText.clearFocus(); super.onBackPressed(); } 

Sólo ampliar EditText:

 public class EditTextV2 extends EditText { public EditTextV2( Context context ) { super( context ); } public EditTextV2( Context context, AttributeSet attribute_set ) { super( context, attribute_set ); } public EditTextV2( Context context, AttributeSet attribute_set, int def_style_attribute ) { super( context, attribute_set, def_style_attribute ); } @Override public boolean onKeyPreIme( int key_code, KeyEvent event ) { if ( event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP ) this.clearFocus(); return super.onKeyPreIme( key_code, event ); } } 

Y en el xml sólo usa <yourPackage.EditTextV2> lugar de <EditText> .

Nota: Es posible que deba agregar o quitar constructores a esta clase en función de la API min que está soportando. Sugiero que acaba de agregar todos ellos y la eliminación de los que super() llamadas se subrayó en rojo.

Puede hacer que otra de sus Views pueda enfocar, por ejemplo un ImageView . Asegúrate de hacerlo enfocable en modo táctil, usando setFocusableInTouchMode(true) y on onResume() haz que View a requestFocus() .

También puede crear una View ficticia con 0 dimensiones y realizar los mismos pasos descritos anteriormente.

Espero que esto ayude.

Añadir vista como la siguiente superior a su EditText:

 <LinearLayout android:layout_width="0px" android:layout_height="0px" android:focusable="true" android:focusableInTouchMode="true" /> 

También para ocultar el teclado, agrega esto en onBackPressed ():

 ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 
  • Teclado EditarEdición de Android no mostrado en Fragmento
  • EditText pierde contenido en desplazamiento en ListView
  • Android: EditText no rellenar ScrollView y RelativeLayout
  • Obtener el valor del atributo Hint de AttributeSet
  • Android onkey - dispatchKeyEvent sin disparar
  • Android: EditText con barra de progreso?
  • ¿Cómo conservar los datos de EditText sobre el cambio de orientación?
  • Teclado superpuesto EditText en clic
  • Implementación de etiquetas flotantes en línea (con EditText?)
  • Cómo iniciar la barra de acción contextual para ver el texto de forma programática con opions por defecto copiar y seleccionar todo?
  • El texto se ensucia con ImageSpan en EditText
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.