2012-03-13 4 views
5

나는 안드로이드 소프트 키보드에서 일하고 있는데 궁금한데, 키보드가 현재 커서 위치를 얻는 방법이 있습니까? 저는 현재 다음과 같은 코드를 사용하고 있습니다 :커서 위치 가져 오기 안드로이드 키보드

connection.getTextBeforeCursor(Integer.MAX_VALUE, 0).length() 

그러나,이는 50ms로까지 걸릴 수 있습니다, 심지어 텍스트의 작은 금액 (매우 느립니다 - 갤럭시 넥서스에서 실행을, 그래서 이것은 가능성도있을 것입니다 로우 엔드 전화기의 경우 느림). 나는 Droid Incredible에서도 테스트를했으며, 그 지연은 더욱 심각합니다.

onUpdateSelection 함수에는 새 커서 위치가 지정됩니다. 그러나이 함수가 항상 호출되는 것은 아니므로 나중에 사용하기 위해이 함수가 제공 한 값을 저장하는 것이 신뢰할 수 없습니다.

커서 위치를 설정하고 선택한 텍스트를 가져올 수 있기 때문에 (선택한 텍스트의 위치가 아님) 커서 위치를 가져 오는 기능이 없어야합니까?

도움 주셔서 감사합니다.

답변

4

이전 질문이지만 최근에 같은 문제가 발생했습니다. 이 선택한 텍스트 작업처럼이 보이는

InputConnection ic = getCurrentInputConnection(); 
ExtractedText et = ic.getExtractedText(new ExtractedTextRequest(), 0); 
int selectionStart = et.selectionStart; 
int selectionEnd = et.selectionEnd; 
+0

: 커서 위치를 얻으려면. 질문은 선택이없는 텍스트의 일반 커서와 관련이있는 것처럼 보입니다. 이 경우이 코드가 작동합니까? –

+0

예,이 경우 selectionStart와 selectionEnd는 동일해야합니다. –

관련 문제