Ввод ключа для удаления для EditField установлен в FILTER_REAL_NUMERIC - PullRequest
0 голосов
/ 13 апреля 2011

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

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

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

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

1 Ответ

2 голосов
/ 13 апреля 2011

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

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

protected boolean keyChar(char key, int status, int time) {
    if (key == Characters.DELETE) {
        backspace();
        return true;
    }
    return super.keyChar(key, status, time);
}
...