【发布时间】:2011-04-08 19:23:38
【问题描述】:
为什么我在InputConnection 中有setSelection,但没有getSelection()?
我应该只做一个getTextBeforeCursor(VERY_HIGH_NUMBER, 0) 并计算该字符串的.length() 吗?
【问题讨论】:
为什么我在InputConnection 中有setSelection,但没有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;
【讨论】: