我只需要当前光标位置的字符串而不是edittext中的所有字符串。例如,如果我正在打字" Hello world,你们好吗?"然后,如果我的光标在"是"那么我只需要字符串"是"。
答案 0 :(得分:3)
试试这个
EditText et=(EditText)findViewById(R.id.edit);
int startSelection=et.getSelectionStart();
int endSelection=et.getSelectionEnd();
String selectedText = et.getText().toString().substring(startSelection, endSelection);
答案 1 :(得分:2)
在Android中使用模式的解决方案。
EditText editText = (EditText)findViewById(R.id.edittext);
Spannable textSpan = editText.getText();
final int selection = editText.getSelectionStart();
final Pattern pattern = Pattern.compile("\\w+");
final Matcher matcher = pattern.matcher(textSpan);
int start = 0;
int end = 0;
String currentWord = "";
while (matcher.find()) {
start = matcher.start();
end = matcher.end();
if (start <= selection && selection <= end) {
currentWord = textSpan.subSequence(start, end).toString();
}
}
Log.d("value", currentWord);
答案 2 :(得分:1)
尝试使用EditText.getSelectionStart()
获取光标的当前位置