2013-10-02 49 views
1

我有一个问题:安卓:在浏览器中编辑文本的行为

我尝试处理领域的投入,这显示在浏览器中,例如在文本字段在www.google.com搜索。但是对于Android 4.1.2及以上版本,这种类型的字段在InputConnection有一些问题。

- it return null for ic.getExtractedText() however ic.getTextBeforeCursor() return normal value; 
- when i use ic.sendKeyEvent() for backspace it doesn't make effect until call ic.endBatchEdit(); 

但对于普通的EditText或安卓2.3.3它返回正确的值,并删除最后一个字符向右走,甚至直到endBatchEdit()调用;

这是怎么回事,这个领域的工作有多正确? 谢谢。

回答

1

此处的链接将此文件记录为Android Jellybean上的已知错误。 https://code.google.com/p/android/issues/detail?id=36152#makechanges

我已经尝试了几个操作系统版本,唯一的问题是果冻豆。

可能的解决方法是使用getTextBeforeCursor()方法,使用相当大的值作为要获取的字符数。

例如,要查找在文本字段中的光标位置如下:

  //try with getExtractedText 
      extr=ic.getExtractedText(new ExtractedTextRequest(), 0); 
      if(extr!=null) 
       Log.w("Cursor Pos", "OnKey "+extr.selectionStart); 
      else 
      { 
       String s =ic.getTextBeforeCursor(9999, 0).toString(); 
       if (s==null) 
        //nothing can be obtained 
       else 
        Log.w("Cursor Pos", "OnKey "+(s.length()-1)); 
      } 
+0

你有没有在棉花糖检查了?我没有得到这项工作。 – Mohammad