public void commitText(final CharSequence text, final int i) {
mCommittedTextBeforeComposingText.append(text);
mCurrentCursorPosition += text.length() - mComposingText.length();
mComposingText.setLength(0);
if (null != mIC) {
//mIC.getExtractedText( null, ExtractedTextRequest.PARCELABLE_WRITE_RETURN_VALUE);
mIC.commitText( mHangulAutomata.encode(mCommittedTextBeforeComposingText.toString()), mComposingText.length());
if (ProductionFlag.IS_EXPERIMENTAL) {
ResearchLogger.richInputConnection_commitText(text, i);
}
}
}
소스에서 처럼 키값을 받아 버퍼에 저장후 연결된 뷰에 버퍼에저장된 text를 인코딩하여 보내고 있습니다.
그런데 저렇게 하니까 문제가 있네요..
만약에 "테스트"라는 글자를 입력하면
ㅌ테텟테스테슽테스트 이렇게 적힙니다.
이유는 글자가 입력받을때마다 commit을 해주니까
이전에 있던 ㅌ에 ㅔ를 붙여 ㅌ+테 이런식으로 계속 추가 되요.
이런경우 정상적으로 입력을하려면.. 어떻게 해줘야할까요 ??
아니면 commit 을 모두 지우는 방법있나여 ??