2011-01-12 17 views

Respuesta

411

Usted puede tratar en su main.xml archivo:

android:selectAllOnFocus="true" 
+16

simplemente supe que esto no funciona, si en el xml EditarTexto hay una etiqueta insertado por el constructor de interfaz de usuario. – machtnix

+1

@machtnix ¿Resolvió el problema con el campo enfocado? – maja

+0

@machtnix Añadir foco a otro componente: http://stackoverflow.com/a/1662088/1020871 – Love

29
EditText dummy = ... 

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

Gracias por su ayuda, pero yo prefiero la solución de TheCottonSilk porque tengo 12 de EditText y me gusta mantener mi código tan limpio como sea posible:) ¡Gracias de todos modos! – Galip

+0

@ La solución de TheCottonSilk es la mejor para los widgets de tiempo de diseño y la respuesta de Craftos es la mejor para dyTic editTexts. –

+2

@Galip 'OnFocusChangeListener listener = new OnFocusChangeListener' ... etc ... then' editText1.setOnFocusChangeListener (oyente) 'editText2.setOnFocusChangeListener (oyente)' y así sucesivamente ... – SparK

24

Sé que usted ha encontrado una solución, pero en realidad la forma correcta de hacer lo que te pido es que sólo tiene que utilizar 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.

+4

En mi aplicación, esos campos se completan por datos personales que pueden guardarse Cuando cargue esos detalles, reemplazará el texto "ficticio". Con mi método curren también puedo tener texto seleccionado DESPUÉS de que el usuario ingrese los detalles.¡Gracias por tus preocupaciones! – Galip

+0

Ah bien, mira tu punto. :) – kcoppock

11

¿Por qué no pruebas android: hint = "hint" para dar la pista al usuario .. !!

La "pista" desaparecerá automáticamente cuando el usuario haga clic en el cuadro de texto de edición. es la mejor y más adecuada solución.

+3

Buena respuesta. Sin embargo, puede haber situaciones en las que rellene EditText con los valores que lee de la configuración, etc., y desea que sea lo más fácil posible cambiar estos valores :) – yoshi

127
editText.setSelectAllOnFocus(true); 

Esto funciona si quiere hacerlo programáticamente.

+2

Esto funcionó para mí ... no la solución anterior :) Gracias :) – Shrikant

+1

También para mí ... la solución anterior de alguna manera no funcionó ... el programado trabajó –

+2

Para aquellos que todavía tienen problemas con la respuesta aceptada anteriormente: intente ésta en su lugar. Confirmado para estar trabajando (también probado para 'Fragments'). – ridsatrio

4

SelectAllOnFocus funciona la primera vez que el EditarTexto obtiene el foco, pero si desea seleccionar el texto cada vez que el usuario hace clic en él, tiene que llamar en editText.clearFocus() entre los tiempos.

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 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. Llame al editText.clearFocus() en el método onClick del botón.

2

También puede agregar un método OnClick en el EDITTEXT después

_editText.setSelectAllOnFocus(true); 

y porque:

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

Tan pronto como hacer clic en el EDITTEXT se selecciona todo el texto.

5

Managed llamando enfoque y la selección en el programa

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