2013-10-02 89 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