2013-10-02 5 views
1

다음 문제가 있습니다 :Android : 브라우저에서 텍스트 동작 편집

입력란을 브라우저에 표시하는 입력란을 처리하려고합니다 (예 : www.google.com에서 검색을 위해 텍스트 입력란에 입력). 하지만 안드로이드 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(); 

그러나 일반 글고 또는 안드로이드는()를 호출도 endBatchEdit 때까지, 바로 마지막 문자를 올바른 값을 반환 및 삭제 2.3.3;

이 문제와이 필드의 올바른 작동 방식은 무엇입니까? 감사합니다. .

답변

1

여기 링크는 Android Jellybean의 알려진 버그로 문서화합니다. https://code.google.com/p/android/issues/detail?id=36152#makechanges

여러 OS 버전에서 사용해 보았습니다. 문제점이있는 유일한 것은 실제로 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)); 
      } 
+0

당신이 산들 바람에 있음을 확인 했습니까? 나는이 일을하지 않았다. – Mohammad

관련 문제