在所有文本都有完整的选择后,可以将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,所有内容都在选择中?

您应该使用textWatcher。每添加一个字符,都应该更改选择并向选择中添加新字符。

在编辑文本更改时添加事件

当事件被击中时,删除选择

editText.clearFocus();

并将光标定位在的末尾

editText.getText().length()

当输入新字符时,再次进行选择

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

我希望你明白。

最新更新