Ввод ключа для удаления для 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);
}