Ввод ключа для удаления для EditField установлен в FILTER_REAL_NUMERIC

Я пытаюсь получить ключ удаления удалить символы, как типичный ключ возврата. MyEditField является подклассом EditField, а стандартный EditField содержит три метода: protected int backspace( int count, int context ), public int backspace( int count ), а также protected boolean backspace(),

MyEditField установлен в FILTER_REAL_NUMERIC при создании экземпляра, и я попытался использовать все вышеупомянутые методы, чтобы заставить работать ключ удаления. Нужно ли переопределять функции возврата для работы или мне придется написать собственный алгоритм, чтобы получить ключ удаления для удаления символа в конце строки?

Я прочитал документацию и не смог найти упоминаний о том, когда функции возврата будут работать, а когда - нет. Кроме того, я знаю, что система (она же симулятор) регистрирует нажатие клавиши при удалении, поскольку я могу напечатать код клавиши на консоль.

Я пытаюсь получить что-то более удобное для пользователя, чем проходить через меню BB, чтобы очистить все поле.

1 ответ

Решение

Нужно ли переопределять функции возврата для работы?

Нет, это не так. Просто поймайте ключевое событие и позвоните backspace(), Что-то вроде:

protected boolean keyChar(char key, int status, int time) {
    if (key == Characters.DELETE) {
        backspace();
        return true;
    }
    return super.keyChar(key, status, time);
}
Другие вопросы по тегам