2011-10-28 26 views
16

Estoy reemplazando texto en EditText, luego quiero mover el cursor al final de la entrada de texto actual. Parece que funciona: cuando empiezo a escribir de nuevo, el cursor parece estar al final de EditText, pero ya no parpadea/parpadea. Tengo que tocar EditText nuevamente para que el cursor comience a parpadear nuevamente. Estoy haciendo mal ?:Mover el cursor al final de EditText?

editText.setSelection(editText.getText().length()-1); 

Gracias

Respuesta

41

Un truco que utilicé estaba poniendo el texto en "" y luego cambiarle toda la cadena que quería.

decir

String newtext = editText.getText().toString() + "the new text"; 
editText.setText(""); 
editText.append(newtext); 

Esto parece colocar el cursor en el lugar correcto para mí.

+0

Lamentablemente no puedo restablecer todos la prueba porque tengo palmos Necesito mantener. ¿Parece que el cursor está parpadeando nuevamente después de hacer lo anterior? – user291701

+0

Sí, esta solución funcionó para mí. – tarrant

15
EditText et = (EditText)findViewById(R.id.inbox); 
et.setSelection(et.getText().length()); 

segundo enfoque

Hay una función llamada append para ediitext que añade el valor de cadena de valor EditarTexto actual y coloca el cursor al final del valor. Puede tener el valor de cadena como el valor actual de ediitext y llamar a append();

myedittext.append("current_this_edittext_string"); 
+1

Gracias. Ambos enfoques parecen funcionar para mí. –

+0

imo el primer enfoque es limpio – Pooya

+0

¡El primer enfoque funciona! – Yashovardhan

0

Para permitir que el usuario cambie todo el texto dentro del texto Edición (haciendo más fácil de usar)

editText.selectAll(); //user can delete the whole text at one go 
editText.requestFocus(); 
Cuestiones relacionadas