Как сделать клавишу удаления - удалить весь выбранный текст редактирования в пользовательской клавиатуре 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);
}
Другие вопросы по тегам