替换 EditText 选择

Replace EditText selection

如何用 android 的编辑文本中的内容替换所选文本? 例如:

Default Text 

假设现在选择 "Default"。 我想用 !boldDefault 替换它。 我该怎么做?我尝试使用获取选择方法,但无法替换它。

如果 EditText 当前选择了文本,您可以像这样访问选择的起点和终点:

int start = editText.getSelectionStart();
int end = editText.getSelectionEnd();

您可以像这样访问 EditTextEditable 文本:

Editable edit = et.getText();

现在您可以使用 replace() 方法替换 Editable 中的任何内容:

String newText = "this will replace the current selection";
edit.replace(start, end, newText);

完成此操作后,您可能想要更改选择,以免新文本的一部分仍处于选中状态:

editText.setSelection(start + newText.length());