Android:在浏览器中编辑文本行为

时间:2013-10-02 15:48:21

标签: android browser android-edittext

我有下一个问题:

我尝试在浏览器中显示的字段中处理输入,例如在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或在Android 2.3.3中,它会返回正确的值并立即删除最后一个字符,甚至直到endBatchEdit()调用;

这有什么问题以及如何正确使用这些字段? 感谢。

1 个答案:

答案 0 :(得分:1)

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

我已经尝试了几个操作系统版本,唯一有问题的是Jelly Bean。

可能的解决方法是使用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));
            }