我正在尝试实现复制/粘贴功能。如何从EditText中获取文本选择?
EditText et=(EditText)findViewById(R.id.title);
单击按钮的onclick监听器:
int startSelection=et.getSelectionStart();
int endSelection=et.getSelectionEnd();
那我就卡住了。有什么想法吗?
我正在尝试实现复制/粘贴功能。如何从EditText中获取文本选择?
EditText et=(EditText)findViewById(R.id.title);
单击按钮的onclick监听器:
int startSelection=et.getSelectionStart();
int endSelection=et.getSelectionEnd();
那我就卡住了。有什么想法吗?
看起来您已经完成了难点,找到了所选区域。现在您只需从完整文本中提取该子字符串即可。
请尝试以下操作:
String selectedText = et.getText().substring(startSelection, endSelection);
这只是一个基本的 Java字符串操作。
您可以通过以下方式从EditText
中获取所选文本:
EditText editText = (EditText) findViewById(R.id.editText3);
int min = 0;
int max = editText.getText().length();
if (editText.isFocused()) {
final int selStart = editText.getSelectionStart();
final int selEnd = editText.getSelectionEnd();
min = Math.max(0, Math.min(selStart, selEnd));
max = Math.max(0, Math.max(selStart, selEnd));
}
// here is your selected text
final CharSequence selectedText = editText.getText().subSequence(min, max);
String text = selectedText.toString();
Editable txt = et.getText();
txt.replace(int st, int en, CharSequence source)
该命令将指定部分(st..en)替换为字符串(CharSequence)。
String selectedText = et.getText().toString().substring(startSelection, endSelection);
getText() 方法返回一个可编辑的对象,而 substring 需要一个字符串类型的参数。因此需要使用 toString() 方法将它们连接起来。
您不需要做那么多,只需长按编辑文本即可显示所有相关选项,如复制/粘贴/选择等。如果您想保存文本,请使用 mbaird 显示的方法。