ontextchanged - textwatcher android ejemplo
Android: haga algo*después de*el texto se ha cambiado en EditText (1)
Construyo una aplicación para Android. Tengo un EditText. Quiero guardar los cambios (o cualquier otra cosa) automáticamente después de que el usuario cambie el texto. Ahora uso
editText.addTextChangedListener(textWatcher);
y
TextWatcher textWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
...
}
Pero guarda los cambios después de cada pequeño cambio (agrega / elimina una letra), y quiero que se guarde solo después de que el usuario finalice (cerró el teclado, hizo clic en un texto de edición diferente, etc.). ¿Cómo puedo hacer eso?
Implementar en onFocusChange
de setOnFocusChangeListener
y hay un parámetro booleano para hasFocus. Cuando esto es falso, ha perdido el foco en otro control y debe guardar los datos de editext. por ejemplo
EditText editText= (EditText) findViewById(R.id.editText);
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
//SAVE THE DATA
}
}
});
Implemente setOnFocusChangeListener
para todos los EditTexts y también debería manejar el evento Back Press
. Si el usuario cambia los datos de edittext y no aparece otro EditText y lo presiona, el valor editado no se guardará. Entonces debería usar onKeyDown
o onBackPressed
también