Pregunta Coloque el cursor al final del texto en EditText


Estoy cambiando el valor de un EditText en keyListener.

Pero cuando cambio el texto, el cursor se mueve hacia el comienzo del EditText. Necesito que el cursor esté al final del texto.

Cómo mover el cursor al final del texto en una EditText.


683
2018-06-02 16:32


origen


Respuestas:


Prueba esto:

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

1106
2017-07-08 12:07



Hay una función llamada append para ediitext que agrega el valor de cadena al valor de edittext 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"); 

191
2017-12-16 02:53



Kotlin:

coloca el cursor en el posición inicial:

val editText = findViewById(R.id.edittext_id) as EditText
editText.setSelection(0)

coloca el cursor en el fin del EditText:

val editText = findViewById(R.id.edittext_id) as EditText
editText.setSelection(editText.getText().length())

Debajo del código es colocar el cursor después del segundo personaje:

val editText = findViewById(R.id.edittext_id) as EditText
editText.setSelection(2)

JAVA:

coloca el cursor en el posición inicial:

 EditText editText = (EditText)findViewById(R.id.edittext_id);
 editText.setSelection(0);

coloca el cursor en el fin del EditText:

EditText editText = (EditText)findViewById(R.id.edittext_id);
editText.setSelection(editText.getText().length());

Debajo del código es colocar el cursor después del segundo personaje:

EditText editText = (EditText)findViewById(R.id.edittext_id);
editText.setSelection(2);

65
2018-06-08 07:12



Si llamaste setText antes y el nuevo texto no recibió la llamada de fase de diseño setSelection en un runnable separado disparado por View.post(Runnable) (repost de esta tema).

Entonces, para mí este código funciona:

editText.setText("text");
editText.post(new Runnable() {
         @Override
         public void run() {
             registerPhone.setSelection("text".length());
         }
});

61
2018-04-16 13:30



También puede colocar el cursor al final del texto en EditText ver de esta manera:

EditText et = (EditText)findViewById(R.id.textview);
int textLength = et.getText().length();
et.setSelection(textLength, textLength);

38
2018-02-28 17:49



editText.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        editText.setSelection(editText.getText().length());
        return false;
    }
});

26
2017-10-16 18:00



Esta es otra posible solución:

et.append("");

Simplemente pruebe esta solución si no funciona por alguna razón:

et.setSelection(et.getText().length());

17
2018-04-05 22:27