Selecciona todo el texto dentro de EditText cuando se enfoca

Tengo un EditText con algún texto falso en él. Cuando el usuario hace clic en él, quiero que se seleccione para que cuando el usuario comience a escribir, el texto ficticio se elimine.

¿Cómo puedo conseguir esto?

Puedes probar en tu archivo main.xml :

 android:selectAllOnFocus="true" 
 editText.setSelectAllOnFocus(true); 

Esto funciona si quieres hacerlo programáticamente.

 EditText dummy = ... // android.view.View.OnFocusChangeListener dummy.setOnFocusChangeListener(new OnFocusChangeListener(){ public void onFocusChange(View v, boolean hasFocus){ if (hasFocus) && (isDummyText()) ((EditText)v).selectAll(); } }); 

Sé que has encontrado una solución, pero la forma correcta de hacer lo que estás pidiendo es simplemente usar el atributo android:hint en tu EditText. Este texto aparece cuando el cuadro está vacío y no está enfocado, pero desaparece al seleccionar el cuadro Editar texto.

¿Por qué no pruebas con android: hint = “hint” para proporcionar la pista al usuario … !!

La “pista” desaparecerá automáticamente cuando el usuario haga clic en edittextbox. es la mejor y más adecuada solución.

Lo gestioné llamando al foco y la selección en el progtwig

 { editabletext.requestFocus(); editabletext.selectAll(); } 

SelectAllOnFocus funciona la primera vez que EditText obtiene el foco, pero si desea seleccionar el texto cada vez que el usuario hace clic en él, necesita llamar a editText.clearFocus() entre horas.

Por ejemplo, si su aplicación tiene un EditText y un botón, al hacer clic en el botón después de cambiar EditText se deja el foco en EditText. Luego, el usuario tiene que usar el controlador del cursor y la tecla de retroceso para borrar lo que está en EditText antes de que pueda ingresar un nuevo valor. Así que llame a editText.clearFocus() en el método editText.clearFocus() del botón.

También puede agregar un método OnClick al editText después

 _editText.setSelectAllOnFocus(true); 

y en eso:

 _editText.clearFocus(); _editText.requestFocus(); 

Tan pronto como haga clic en editText, se seleccionará todo el texto.

Intenté una respuesta anterior y no funcionó hasta que cambié las declaraciones. Esto es lo que funcionó para mí:

  myEditText.setSelectAllOnFocus(true); myEditText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onClickMyEditText(); } }); private void onClickMyEditText() { if(myEditText.isFocused()){ myEditText.clearFocus(); myEditText.requestFocus(); }else{ myEditText.requestFocus(); myEditText.clearFocus(); } } 

Tuve que preguntar si el foco estaba en EditText, y si no, primero pedí el foco y luego lo borré. De lo contrario, la próxima vez que haga clic en EditText, el teclado virtual nunca aparecerá