Hay dos EditText
, al cargar la página, se establece un texto en el primer EditText, por lo que ahora el cursor estará en el lugar de inicio EditText
, quiero establecer la posición del cursor en el segundo EditText que no contiene datos. ¿Como hacer esto?
235
Respuestas:
Donde position es un int:
fuente
He hecho esta manera de establecer la posición del cursor al final del texto después de actualizar el texto de EditText programáticamente aquí,
etmsg
es EditTextfuente
etmsg.setText("my new text..."); etmsg.setSelection(etmsg.length());
Cómo establecer la posición del cursor EditText en Android
Debajo del código se establece el cursor para comenzar en
EditText
:Debajo del código se encuentra el cursor al final de
EditText
:Debajo del código se encuentra el cursor de configuración después de una segunda posición de carácter:
fuente
Solo hay una posición en un EditText vacío, es
setSelection(0)
.¿O quiso decir que desea enfocarse en su
EditText
cuando se abre su actividad? En ese caso esrequestFocus()
fuente
usa la línea de abajo
e2
es editar texto Nombre del objetofuente
Deje que editText2 sea su segunda vista EditText. Luego ponga el siguiente código en onResume ()
o poner
en su diseño xml de la segunda vista EditText.
fuente
alguna vez el cursor de edición de texto no viene en una posición particular si lo usamos directamente
editText.setSelection(position);
. En ese caso puedes intentarfuente
Si desea colocar el cursor en una determinada posición en un EditText, puede usar:
Además, existe la posibilidad de establecer la posición inicial y final, de modo que seleccione programáticamente algún texto de esta manera:
Tenga en cuenta que configurar la selección puede ser complicado ya que puede colocar el cursor antes o después de un carácter, la imagen a continuación explica cómo funciona el índice en este caso:
Entonces, si desea el cursor al final del texto, simplemente configúrelo en
yourEditText.length()
.fuente
setSelection(int index)
El métodoEdittext
debería permitirle hacer esto.fuente
como recordatorio: si está utilizando
edittext.setSelection()
para configurar el cursor, y NO funciona mientras configura,alertdialog
por ejemplo, asegúrese de configurarselection()
DESPUÉS de que se haya creado el diálogoejemplo:
fuente
Este código lo ayudará a mostrar su cursor en la última posición de edición de texto.
fuente
Recuerde llamar
requestFocus()
antessetSelection
para editar el texto.fuente
fuente
Si desea establecer el cursor después del
n
carácter de derecha a izquierda, debe hacer esto.Si editar texto del texto como
y quieres mover el cursor en la sexta posición desde la derecha
Luego moverá el cursor a-
fuente
fuente
fuente
Establecer cursor en una fila y columna
Puede usar el siguiente código para obtener la posición en su EditText que corresponde a una determinada fila y columna. Luego puede usar
editText.setSelection(getIndexFromPos(row, column))
para establecer la posición del cursor. Se pueden realizar las siguientes llamadas al método:getIndexFromPos(x, y)
Ir a la columna y de la línea xgetIndexFromPos(x, -1)
Ir a la última columna de la línea xgetIndexFromPos(-1, y)
Ir a la columna y de la última línea.getIndexFromPos(-1, -1)
Ir a la última columna de la última línea.Se manejan todos los límites de línea y columna; Ingresar una columna mayor que la longitud de la línea devolverá la posición en la última columna de la línea. Ingresar una línea mayor que el recuento de líneas de EditText irá a la última línea. Debe ser lo suficientemente confiable, ya que se probó en gran medida.
La pregunta ya fue respondida, pero pensé que alguien podría querer hacer eso en su lugar.
Funciona recorriendo cada carácter, incrementando el recuento de líneas cada vez que encuentra un separador de línea. Cuando el recuento de líneas es igual a la línea deseada, devuelve el índice actual + la columna, o el índice final de línea si la columna está fuera de los límites. También puede reutilizar el
getTrueLineCount()
método, devuelve un recuento de líneas ignorando el ajuste de texto, a diferenciaTextView.getLineCount()
.fuente
En kotlin, podría crear una función de extensión como esta:
y luego simplemente llame
myEditText.placeCursorAtLast()
fuente
Si desea establecer la posición del cursor en EditText? prueba estos códigos a continuación
fuente
Cómo resolver el problema de la posición del cursor que se mueve automáticamente a la última posición después de formatear en US Mobile como (xxx) xxx-xxxx en Android.
Definir el siguiente método para cualquier clase de actividad en mi caso El nombre de la actividad es AppUtil y acceder a él globalmente
Y si quieres establecer una posición específica
fuente
Creo que la forma más simple de hacer esto es simplemente usar relleno.
Digamos en la sección edittext de tu xml, agrega android: paddingLeft = "100dp" Esto moverá tu posición de inicio del cursor 100dp a la derecha desde el extremo izquierdo.
De la misma manera, puede usar android: paddingRight = "100dp" Esto moverá su posición final del cursor 100dp hacia la izquierda desde el extremo derecho.
Para obtener más detalles, consulte este artículo en mi blog : Android: Configuración de la posición inicial y final del cursor en el widget EditText
fuente