为什么我有setSelection
in InputConnection
,但没有 a getSelection()
?
我应该只做一个getTextBeforeCursor(VERY_HIGH_NUMBER, 0)
并计算.length()
那个字符串的吗?
为什么我有setSelection
in InputConnection
,但没有 a getSelection()
?
我应该只做一个getTextBeforeCursor(VERY_HIGH_NUMBER, 0)
并计算.length()
那个字符串的吗?
我同意,这很愚蠢,getSelection()
不存在。您的解决方案工作正常,但您必须假设只有一个光标显示,而不是整个选定的文本范围。我还没有想出如何填补这个洞。
编辑: 哦,当然:
int selStart = ic.getTextBeforeCursor(HIGH_NUMBER, 0).length();
String sel = ic.getSelectedText();
int selEnd = selStart + (sel==null? 0: sel.length());
我有这个问题。我想重构对我的引用EditText
并使用InputConnection
唯一的。为了让选择开始和结束,我最终使用了getExtractedText(…)
这样的方法:
private static final ExtractedTextRequest request = new ExtractedTextRequest();
private InputConnection ic;
// …
ExtractedText extractedText = ic.getExtractedText(request, 0);
int start = extractedText.selectionStart;
int end = extractedText.selectionEnd;