Saltar al contenido

¿Cómo puedo saber cuando un EditText pierde el foco?

Solución:

Implementar onFocusChange de setOnFocusChangeListener y hay un parámetro booleano para hasFocus. Cuando esto es falso, ha perdido el enfoque hacia otro control.

 EditText txtEdit = (EditText) findViewById(R.id.edittxt);

 txtEdit.setOnFocusChangeListener(new OnFocusChangeListener() {          
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {
               // code to execute when EditText loses focus
            }
        }
    });

Ten tu Activity implementar OnFocusChangeListener() si desea un uso factorizado de esta interfaz, ejemplo:

public class Shops extends AppCompatActivity implements View.OnFocusChangeListener{

En tus OnCreate puede agregar un oyente, por ejemplo:

editTextResearch.setOnFocusChangeListener(this);
editTextMyWords.setOnFocusChangeListener(this);
editTextPhone.setOnFocusChangeListener(this);

luego, Android Studio le pedirá que agregue el método desde la interfaz, acéptelo … será como:

@Override
public void onFocusChange(View v, boolean hasFocus) {
// todo your code here...
}

y como tienes un código factorizado, solo tendrás que hacer eso:

@Override
public void onFocusChange(View v, boolean hasFocus) {
   if (hasFocus) {
        editTextResearch.setText("");
        editTextMyWords.setText("");
        editTextPhone.setText("");
    }
    if (!hasFocus){
        editTextResearch.setText("BlaBlaBla");
        editTextMyWords.setText(" One Two Tree!");
        editTextPhone.setText(""your phone here:"");
    }
}

cualquier cosa que codifique en el !hasFocus es por el comportamiento del elemento que pierde el foco, ¡eso debería funcionar! ¡Pero tenga en cuenta que en tal estado, el cambio de enfoque podría sobrescribir las entradas del usuario!

Camino de Kotlin

editText.setOnFocusChangeListener { _, hasFocus ->
    if (!hasFocus) {  }
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *