我有一个奇怪的场景。我有一个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
,所有内容都在选择中?
您应该使用textWatcher。每添加一个字符,都应该更改选择并向选择中添加新字符。
在编辑文本更改时添加事件
当事件被击中时,删除选择
editText.clearFocus();
并将光标定位在的末尾
editText.getText().length()
当输入新字符时,再次进行选择
editText.setSelection(0, editText.text.length)
我希望你明白。