Как сделать клавишу удаления - удалить весь выбранный текст редактирования в пользовательской клавиатуре Android
Я создаю пользовательскую клавиатуру Android и хочу удалить ключ, чтобы удалить весь текст редактирования, если они выбраны.
т. е. когда текст выделен, появляется буфер обмена (вырезать, скопировать, вставить); в этом режиме, если клавиша удаления нажата, она должна удалить все. Это не в настоящее время.
PS Не говорите мне для конкретного редактирования текста, это пользовательская клавиатура, у нее не будет доступа для редактирования текста.
2 ответа
Я не понимаю, почему это не так. В созданной мной клавиатуре я просто отправляю событие удаления клавиши, и оно работает как брелок. Попробуйте следующее при нажатии клавиши удаления / возврата, когда что-то выбрано.
getCurrentInputConnection().sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_DEL));
getCurrentInputConnection().sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_DEL));
Вы также можете увидеть, если InputConnection
имеет любой выделенный текст с getSelectedText
, Затем удалите его, если он это делает (или удалите предыдущий символ, если это не так).
CharSequence selectedText = inputConnection.getSelectedText(0);
if (TextUtils.isEmpty(selectedText)) {
inputConnection.deleteSurroundingText(1, 0);
} else {
inputConnection.commitText("", 1);
}