Можете ли вы установить EditText в режиме добавления после полного выделения всего текста?

#android #android-edittext

#Android #android-edittext

Вопрос:

У меня странный сценарий. У меня есть EditText

 val editText = findView...
editText.setText("Hello")   // prefill some text
editText.setSelection(0, editText.text.length)  // select the full length in the selection
  

Теперь EditText будет выглядеть так, как если бы Hello все слово было выделено. Если пользователь что-то введет, скажем World , это заменит весь выделенный текст, так что теперь в EditText будет только новое введенное слово World .

Вопрос в том, есть ли способ, чтобы вместо замены предварительно заполненного выделения, когда пользователь вводит текст, он добавит текст и продолжит и расширит выделение. Итак, в приведенном выше сценарии, когда пользователь вводит World данные после предварительного заполнения, это будет HelloWorld со всем, что есть в выборе?

Ответ №1:

Вы должны использовать TextWatcher. Каждый добавляемый вами символ вы должны изменить выделение и добавить новый символ в свой выбор.

Ответ №2:

добавление события при редактировании текста изменение

когда событие будет нажато, удалите выделение

 editText.clearFocus();
  

и поместите курсор в конец

 editText.getText().length()
  

и когда будет введен новый символ, повторите выделение

  editText.setSelection(0, editText.text.length)
  

надеюсь, вы поняли идею.