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)