Existem dois EditText
, ao carregar a página, um texto é definido no primeiro EditText. Portanto, agora o cursor estará no ponto inicial de EditText
, desejo definir a posição do cursor no segundo EditText que não contém dados. Como fazer isso?
android
android-edittext
nila
fonte
fonte
Respostas:
Onde position é um int:
fonte
Eu fiz desta maneira para definir a posição do cursor no final do texto depois de atualizar o texto do EditText programaticamente aqui,
etmsg
é EditTextfonte
etmsg.setText("my new text..."); etmsg.setSelection(etmsg.length());
Como definir a posição do cursor EditText no Android
Abaixo o código está definido como cursor para Iniciando em
EditText
:Abaixo de Code is Set cursor to final of
EditText
:Abaixo de Code is Set cursor após alguma posição do 2º caractere:
fonte
Existe apenas uma posição em um EditText vazio, é
setSelection(0)
.Ou você quis dizer que deseja focar no seu
EditText
quando sua atividade é aberta? Nesse caso, a suarequestFocus()
fonte
use a linha abaixo
e2
é editar texto Nome do objetofonte
Deixe editText2 é sua segunda visualização EditText. Em seguida, coloque o seguinte trecho de código em onResume ()
ou colocar
no seu layout xml da segunda visualização EditText.
fonte
algum tempo para editar o texto, o cursor não fica em uma posição específica, se usarmos diretamente
editText.setSelection(position);
. Nesse caso, você pode tentarfonte
Se você deseja colocar o cursor em uma determinada posição em um EditText, você pode usar:
Além disso, existe a possibilidade de definir a posição inicial e final, para que você selecione programaticamente algum texto, desta maneira:
Observe que a configuração da seleção pode ser complicada, pois você pode posicionar o cursor antes ou depois de um caractere. A imagem abaixo explica como o índice funciona neste caso:
Portanto, se você quiser o cursor no final do texto, apenas defina-o
yourEditText.length()
.fonte
setSelection(int index)
O método inEdittext
deve permitir que você faça isso.fonte
como lembrete: se você estiver usando
edittext.setSelection()
para definir o cursor, e NÃO estiver funcionando durante a configuração de,alertdialog
por exemplo, certifique-se de definirselection()
APÓS a caixa de diálogo ter sido criadaexemplo:
fonte
Este código o ajudará a mostrar o cursor na última posição da edição de texto.
fonte
Lembre-se de ligar
requestFocus()
antessetSelection
para o edittext.fonte
fonte
Se você deseja definir o cursor após o
n
caractere da direita para a esquerda, faça o seguinte.Se o texto do edittext como
e você deseja mover o cursor na 6ª posição da direita
Então ele moverá o cursor em
fonte
fonte
fonte
Definir cursor para uma linha e coluna
Você pode usar o código a seguir para obter a posição no seu EditText que corresponde a uma determinada linha e coluna. Você pode usar
editText.setSelection(getIndexFromPos(row, column))
para definir a posição do cursor. As seguintes chamadas ao método podem ser feitas:getIndexFromPos(x, y)
Vá para a coluna y da linha xgetIndexFromPos(x, -1)
Vá para a última coluna da linha xgetIndexFromPos(-1, y)
Vá para a coluna y da última linhagetIndexFromPos(-1, -1)
Vá para a última coluna da última linhaTodos os limites de linha e coluna são tratados; Inserir uma coluna maior que o comprimento da linha retornará a posição na última coluna da linha. Inserir uma linha maior que a contagem de linhas do EditText irá para a última linha. Deve ser confiável o suficiente, pois foi fortemente testado.
A pergunta já foi respondida, mas achei que alguém poderia querer fazer isso.
Ele funciona repetindo cada caractere, incrementando a contagem de linhas sempre que encontrar um separador de linhas. Quando a contagem de linhas é igual à linha desejada, ele retorna o índice atual + a coluna ou o índice de final de linha se a coluna estiver fora dos limites. Você também pode reutilizar o
getTrueLineCount()
método, ele retorna uma contagem de linhas ignorando a quebra de texto, ao contrárioTextView.getLineCount()
.fonte
No kotlin, você pode criar uma função de extensão como esta:
e então simplesmente chame
myEditText.placeCursorAtLast()
fonte
Se você deseja definir a posição do cursor no EditText? tente estes código abaixo
fonte
Como resolver o problema de posição do cursor, que é movido automaticamente para a última posição após a formatação no US Mobile, como (xxx) xxx-xxxx no Android.
Defina o método abaixo para qualquer Activityclass no meu caso O nome da Activity é AppUtil e acesse-o globalmente
E se você deseja definir qualquer posição específica
fonte
Acredito que a maneira mais simples de fazer isso é usar preenchimento.
Digamos que na seção edittext do seu xml, adicione android: paddingLeft = "100dp" Isso moverá sua posição inicial do cursor 100dp para a direita do lado esquerdo.
Da mesma forma, você pode usar o android: paddingRight = "100dp" Isso moverá sua posição final do cursor 100dp para a esquerda a partir da extremidade direita.
Para obter mais detalhes, consulte este artigo no meu blog : Android: definindo a posição inicial e final do cursor no widget EditText
fonte