Их два EditText
, при загрузке страницы текст устанавливается в первом EditText, поэтому теперь курсор будет на начальной позиции EditText
, я хочу установить позицию курсора во втором EditText, который не содержит данных. Как это сделать?
235
Ответы:
Где позиция является int:
источник
Я сделал этот способ, чтобы установить позицию курсора в конец текста после обновления текста EditText программно здесь,
etmsg
EditTextисточник
etmsg.setText("my new text..."); etmsg.setSelection(etmsg.length());
Как установить положение курсора EditText в Android
Внизу кода установлен курсор для запуска в
EditText
:Код ниже Установить курсор в конец из
EditText
:Ниже кода установлен курсор после некоторой позиции 2-го символа:
источник
В пустом EditText есть только одна позиция
setSelection(0)
.Или вы имели в виду, что хотите сфокусироваться на своем,
EditText
когда начинается ваша деятельность? В этом случае егоrequestFocus()
источник
используйте строку ниже
e2
редактировать текст Имя объектаисточник
Пусть editText2 - это ваше второе представление EditText. Затем поместите следующий фрагмент кода в onResume ().
или положить
в вашем XML-макете второго представления EditText.
источник
Некоторое время редактирование текстового курсора не происходит в определенной позиции, если мы непосредственно используем
editText.setSelection(position);
. В этом случае вы можете попробоватьисточник
Если вы хотите поместить курсор в определенную позицию на EditText, вы можете использовать:
Кроме того, есть возможность установить начальную и конечную позицию, чтобы вы программным образом выбирали какой-то текст следующим образом:
Обратите внимание, что установка выделения может быть сложной, так как вы можете поместить курсор перед или после символа, изображение ниже объясняет, как индексирование работает в этом случае:
Итак, если вы хотите, чтобы курсор находился в конце текста, просто установите его в
yourEditText.length()
.источник
setSelection(int index)
методEdittext
должен позволить вам сделать это.источник
как напоминание: если вы используете
edittext.setSelection()
для установки курсора, и он НЕ работает при настройке,alertdialog
например, убедитесь, что послеselection()
ПОСЛЕ диалогового окна было созданопример:
источник
Этот код поможет вам показать курсор на последней позиции редактирования текста.
источник
Не забудьте позвонить
requestFocus()
раньшеsetSelection
для редактирования текста.источник
источник
Если вы хотите установить курсор после
n
символа справа налево, вы должны сделать это следующим образом.Если текст редактирования текста, как
и вы хотите переместить курсор на 6-ю позицию справа
Затем он будет перемещать курсор на
источник
источник
источник
Установить курсор на строку и столбец
Вы можете использовать следующий код, чтобы получить позицию в вашем EditText, которая соответствует определенной строке и столбцу. Затем вы можете использовать
editText.setSelection(getIndexFromPos(row, column))
для установки позиции курсора. Следующие вызовы метода могут быть сделаны:getIndexFromPos(x, y)
Перейти к столбцу y строки xgetIndexFromPos(x, -1)
Перейти к последнему столбцу строки xgetIndexFromPos(-1, y)
Перейти к столбцу y последней строкиgetIndexFromPos(-1, -1)
Перейти к последнему столбцу последней строкиВсе границы строк и столбцов обрабатываются; Ввод столбца, превышающего длину строки, вернет позицию в последнем столбце строки. Ввод строки, превышающей счетчик строк EditText, перейдет к последней строке. Это должно быть достаточно надежно, поскольку это было тщательно проверено.
На вопрос уже был дан ответ, но я подумал, что кто-то может захотеть сделать это вместо этого.
Он работает, просматривая каждый символ, увеличивая количество строк каждый раз, когда находит разделитель строк. Когда счетчик строк равен требуемой строке, он возвращает текущий индекс + столбец или индекс конца строки, если столбец выходит за границы. Вы также можете повторно использовать
getTrueLineCount()
метод, он возвращает количество строк, игнорируя перенос текста, в отличие отTextView.getLineCount()
.источник
В kotlin вы можете создать функцию расширения, например:
а потом просто позвони
myEditText.placeCursorAtLast()
источник
Если вы хотите установить позицию курсора в EditText? попробуйте этот код ниже
источник
Как решить проблему с позицией курсора, которая автоматически перемещается на последнюю позицию после форматирования в US Mobile, например (xxx) xxx-xxxx в Android.
Определите приведенный ниже метод для любого Activityclass в моем случае. Activity name называется AppUtil, и доступ к нему осуществляется глобально.
И если вы хотите установить какую-то конкретную позицию
источник
Я считаю, что самый простой способ сделать это - просто использовать отступы.
Скажем, в разделе edittext вашего xml добавьте android: paddingLeft = "100dp". Это сместит вашу начальную позицию курсора на 100dp справа от левого конца.
Точно так же вы можете использовать android: paddingRight = "100dp" Это переместит вашу конечную позицию курсора на 100dp влево от правого конца.
Более подробную информацию можно найти в моем блоге : Android: установка начальной и конечной позиции курсора в виджете EditText
источник