Que su Activity
implemento OnFocusChangeListener()
si quieres un uso factorizada de esta interfaz, ejemplo:
public class Shops extends AppCompatActivity implements View.OnFocusChangeListener{
En su OnCreate
puede agregar un oyente por ejemplo:
editTextReaserch.setOnFocusChangeListener(this);
editTextMyWords.setOnFocusChangeListener(this);
editTextPhone.setOnFocusChangeListener(this);
a continuación, Android Studio le pedirá que agregue el método desde la interfaz, acéptelo ... i t será como:
@Override
public void onFocusChange(View v, boolean hasFocus) {
// todo your code here...
}
y cuando usted tiene un código factorizada, vas a tener que hacer eso:
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
editTextReaserch.setText("");
editTextMyWords.setText("");
editTextPhone.setText("");
}
if (!hasFocus){
editTextReaserch.setText("BlaBlaBla");
editTextMyWords.setText(" One Two Tree!");
editTextPhone.setText("\"your phone here:\"");
}
}
todo lo que en el código de !hasFocus
es que el comportamiento de la el elemento que pierde el foco, ¡eso debería hacer el truco! ¡Pero tenga en cuenta que en tal estado, el cambio de enfoque podría sobrescribir las entradas del usuario!
+1 - pero vale la pena señalar que si su edición de texto se encuentra en una vista de lista, cada jugada clave se traducirá en la caja y conseguir perder el foco. Consulte esta solución para realizar un seguimiento del recuadro que se enfoca actualmente: http://stackoverflow.com/questions/9527067/android-edittext-in-listview-loses-focus-on-calling-notifydatachanged – bsautner
41 upvotes por una respuesta que básicamente dice "leer el valor 'hasFocus'". La verdad es que esto es realmente difícil de hacer que EditText pierda su enfoque y hay toneladas de preguntas sin respuesta al respecto. –
¿Dónde agrego el código que muestra? Si lo coloco como está en "onCreate", la aplicación falla – Jona