我正在关注此示例: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
我仍然可以使用以下方法删除A中的文字:
//keyEventCode = KeyEvent.KEYCODE_DEL
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));
但是由于文本长度未知,因此无法清除文本A.此外,KeyEvent.KEYCODE_CLEAR不适用于上述函数。
任何建议都有帮助,非常感谢。
答案 0 :(得分:6)
我做了类似的事情:
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());
答案 1 :(得分:1)
如何使用getCurrentFocus()
简单地检索焦点下的视图(请参阅documentation),然后调用myFocusedEditText.setText("")
(我假设您的字段是EditText)?