我遵循以下示例:https://android.googlesource.com/platform/development/+/master/samples/SoftKeyboard/
添加明文按钮时遇到问题。我想要一个在焦点文本中清除的按钮。但由于我重新聚焦了一个不空的文本,我不知道如何删除现有的字符。
例如,我有edittext a和edittext b。

focus A > commit "hello" > focus B > commit "world" > focus A > clear text in A >> FAIL

我仍然可以使用以下命令逐个删除文本:
    //keyEventCode = KeyEvent.KEYCODE_DEL
    getCurrentInputConnection().sendKeyEvent(
            new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));
    getCurrentInputConnection().sendKeyEvent(
            new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));

但是不可能清除文本A,因为文本A的长度未知。此外,keyevent.keycode_clear不适用于上述功能。
任何建议都有帮助,非常感谢。

最佳答案

我做了这样的事:

InputConnection inputConnection = getCurrentInputConnection();

CharSequence currentText = inputConnection.getExtractedText(new ExtractedTextRequest(), 0).text;
CharSequence beforCursorText = inputConnection.getTextBeforeCursor(currentText.length(), 0);
CharSequence afterCursorText = inputConnection.getTextAfterCursor(currentText.length(), 0);
inputConnection.deleteSurroundingText(beforCursorText.length(), afterCursorText.length());

07-25 21:01