私のソフトキーボードでは、以下のように削除するためのイベントキーを完全にキャプチャできます
public void onKey(int primaryCode, int[] keyCodes) {
if (primaryCode == Keyboard.KEYCODE_DELETE) {
int ccLength = composingContent.length();
if (ccLength > 1) {
composingContent.delete(ccLength - 1, ccLength);
getCurrentInputConnection().setComposingText(composingContent, ccLength - 1);
}
}
}
問題は、新しいcomposingContentが設定されると、古いテキストの末尾に追加されることです。古いコンテンツはクリアされません。私も使った
getCurrentInputConnection().commitText(composingContent, ccLength - 1);
ただし、これは以前に設定された構成テキストもクリアしません