Android - 从EditText中选择文本

时间:2010-01-29 15:41:23

标签: android selection android-edittext

我正在尝试实现复制/粘贴功能。如何从EditText中选择文本?

EditText et=(EditText)findViewById(R.id.title);

按钮上的blabla onclicklistener:

int startSelection=et.getSelectionStart();
int endSelection=et.getSelectionEnd();

然后我被卡住了。有什么想法吗?

5 个答案:

答案 0 :(得分:14)

看起来你已经通过查找所选区域的内容已经完成了很多工作。现在你只需要从全文中提取子字符串。

试试这个:

String selectedText = et.getText().substring(startSelection, endSelection);

这只是一个基本的Java String操作。

答案 1 :(得分:0)

您应该使用可编辑对象中的特殊功能:

Editable txt = et.getText();
txt.replace(int st, int en, CharSequence source)

此命令用String(CharSequence)替换用(st..en)指定的部分。

答案 2 :(得分:0)

你不需要做所有这些,只需长按编辑文本就会显示复制/粘贴/选择等所有相关选项。如果你想保存文字,请使用mbaird所示的方法

答案 3 :(得分:0)

String selectedText = et.getText()。toString()。substring(startSelection,endSelection);
getText()返回一个可编辑的。 substring需要一个String。 toString()正确连接它们。

答案 4 :(得分:0)

您可以通过这种方式从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();