Android edittext set cursor position

Как установить позицию курсора в EditText?

Есть два EditText , при загрузке страницы текст устанавливается в первом EditText, поэтому теперь курсор будет в исходном месте EditText , я хочу установить позицию курсора во втором EditText, который не содержит данных. Как это сделать?

Где позиция int:

Я сделал так, чтобы установить положение курсора в конец текста после обновления текста EditText программно здесь, etmsg – EditText

Как установить позицию курсора EditText в Android

Ниже кода установлен курсор для EditText в EditText :

Ниже кода установлен курсор до конца EditText :

Ниже кода устанавливается курсор после некоторой 2-й позиции символа:

Я хочу установить позицию курсора в edittext, которая не содержит данных

В пустом EditText есть только одна позиция, это setSeletion(0) .

Или вы имели в виду, что хотите сосредоточиться на своем EditText когда открывается ваша деятельность? В этом случае его requestFocus()

Пусть editText2 – это ваш второй вариант EditText. Затем введите следующий фрагмент кода в onResume ()

В вашем xml-макете второго представления EditText.

SetSelection (int index) в Edittext должен позволить вам сделать это.

В качестве напоминания: если вы используете edittext.setSelection() чтобы установить курсор, и он НЕ работает при настройке alertdialog например, убедитесь, что вы alertdialog selection() ПОСЛЕ того, как диалог был создан

Используйте нижнюю строку

e2 – текст редактирования Название объекта

Я не получаю метод setSelection () напрямую, поэтому я сделал, как показано ниже, и работал как шарм

Если вы хотите установить курсор после n символа справа налево, вам нужно сделать это следующим образом.

Читайте также:  Установка через sai андроид что это

Если текст edittext

И вы хотите переместить курсор на 6-ю позицию справа

Затем он переместит курсор в положение-

Некоторое время редактирование текстового курсора donot приходит в конкретное положение, если мы непосредственно используем editText.setSelection(position); , В этом случае вы можете попробовать

Помните вызов requestFocus() перед setSelection для edittext.

Установите курсор в строку и столбец

Вы можете использовать следующий код, чтобы получить позицию в вашем EditText, которая соответствует определенной строке и столбцу. Затем вы можете использовать editText.setSelection(getIndexFromPos(row, column)) чтобы установить позицию курсора. Следующие вызовы метода могут быть сделаны:

  • getIndexFromPos(x, y) Перейдите к столбцу y строки x
  • getIndexFromPos(x, -1) Перейти к последнему столбцу строки x
  • getIndexFromPos(-1, y) Переход к столбцу y последней строки
  • getIndexFromPos(-1, -1) Перейти к последнему столбцу последней строки

Обработка всех строк и столбцов осуществляется; Ввод столбца, превышающего длину строки, будет возвращать позицию в последнем столбце строки. Ввод строки, превышающей количество строк в EditText, будет переходить к последней строке. Он должен быть достаточно надежным, так как он был сильно протестирован.

Вопрос уже был дан, но я думал, что кто-то захочет это сделать.

Он работает путем циклического прохождения каждого символа, увеличивая количество строк каждый раз, когда находит разделитель строк. Когда количество строк равно требуемой строке, оно возвращает текущий индекс + столбец или индекс конца строки, если столбец находится за пределами границ. Вы также можете повторно использовать метод getTrueLineCount() , он возвращает количество строк, игнорируя перенос текста, в отличие от TextView.getLineCount() .

В kotlin вы можете создать функцию расширения следующим образом:

А затем просто вызовите myEditText.placeCursorAtLast()

Я считаю, что самый простой способ сделать это – просто использовать прописку.

Скажем в разделе edittext вашего xml, добавьте android: paddingLeft = «100dp». Это переместит вашу начальную позицию курсора 100dp справа от левого края.

Читайте также:  Vivaldi browser для android

Точно так же вы можете использовать android: paddingRight = «100dp» Это переместит ваше конечное положение курсора 100dp влево от правого конца.

Для более подробной информации, прочтите эту статью в своем блоге : Android: настройка курсора Запуск и завершение позиции в EditText Widget

Источник

Оцените статью