我遵循以下示例: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());