【问题标题】:Android: InputConnection is missing a getSelection() methodAndroid:InputConnection 缺少 getSelection() 方法
【发布时间】:2011-04-08 19:23:38
【问题描述】:

为什么我在InputConnection 中有setSelection,但没有getSelection()

我应该只做一个getTextBeforeCursor(VERY_HIGH_NUMBER, 0) 并计算该字符串的.length() 吗?

【问题讨论】:

    标签: android inputconnection


    【解决方案1】:

    我同意,getSelection() 不存在是愚蠢的。您的解决方案工作正常,但您必须假设只有一个光标显示,而不是整个选定的文本范围。我还没有想出如何填补这个洞。

    编辑:哦,当然:

    int selStart = ic.getTextBeforeCursor(HIGH_NUMBER, 0).length();
    String sel = ic.getSelectedText(); 
    int selEnd = selStart + (sel==null? 0: sel.length());
    

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      我遇到了这个问题。我想重构对我的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;
      

      【讨论】:

        猜你喜欢
        • 2021-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多