style - propiedades edittext android
Selecciona todo el texto dentro de EditText cuando se enfoca (9)
¿Por qué no intentas con android: hint = "hint" para proporcionar la sugerencia al usuario .. !!
La "sugerencia" desaparecerá automáticamente cuando el usuario haga clic en el cuadro de edición. Es la mejor y más adecuada solución.
Tengo un texto de edición con un texto ficticio en él. Cuando el usuario haga clic en él, quiero que se seleccione para que cuando el usuario comience a escribir se borre el texto ficticio.
¿Cómo puedo conseguir esto?
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 está en el EditText, y si no es así, primero solicite el foco y luego elimínelo. De lo contrario, la próxima vez que haga clic en el texto de edición, el teclado virtual nunca aparecerá.
Lo manejé llamando al enfoque y seleccionando el programa.
{
editabletext.requestFocus();
editabletext.selectAll();
}
Sé que has encontrado una solución, pero realmente 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.
SelectAllOnFocus funciona la primera vez que EditText se enfoca, pero si desea seleccionar el texto cada vez que el usuario hace clic en él, debe llamar a editText.clearFocus()
entre horas.
Por ejemplo, si su aplicación tiene un EditText y un botón, hacer clic en el botón después de cambiar el EditText deja el foco en el EditText. Luego, el usuario tiene que usar el controlador del cursor y la tecla de retroceso para eliminar lo que está en el Texto de edición antes de que puedan ingresar un nuevo valor. Entonces llame a editText.clearFocus()
en el método onClick
del botón.
También puede agregar un método OnClick al editText después de
_editText.setSelectAllOnFocus(true);
y en eso:
_editText.clearFocus();
_editText.requestFocus();
Tan pronto como haga clic en editText, se seleccionará todo el texto.
Puedes probar en tu archivo main.xml
:
android:selectAllOnFocus="true"
EditText dummy = ...
// android.view.View.OnFocusChangeListener
dummy.setOnFocusChangeListener(new OnFocusChangeListener(){
public void onFocusChange(View v, boolean hasFocus){
if (hasFocus) && (isDummyText())
((EditText)v).selectAll();
}
});
editText.setSelectAllOnFocus(true);
Esto funciona si quieres hacerlo programáticamente.