В Lwuit, как обрабатывать события навигации клавиатуры?
В строящемся приложении у меня есть вкладки и список для каждой вкладки. поведение, которое я хочу, это когда я нажимаю левую / правую клавишу навигации, выбранная вкладка изменится. когда я нажимаю клавишу навигации вверх / вниз, список изменит индекс выбора.
Я использовал LWUIT GUI Builder для генерации StateMachine/StateMachineBase
учебный класс.
Я пытался исправить это весь день. пожалуйста помоги.
2 ответа
Феромикс ответил правильно, но он не учел UIBuilder
, Чтобы переопределить создание формы в UIBuilder, переопределите метод:
protected Component createComponentInstance(String componentType, Class cls) {
if(cls == com.sun.lwuit.Form.class) {
return new MyFormSubclass();
}
return super.createComponentInstance(componentType, cls);
}
Существует возможность переопределить поведение выбора вкладки, но для получения наиболее точного поведения это может быть лучшим подходом.
Почему ты усложняешь свою жизнь? Просто используйте keyReleased
Реализация метода в вашем классе. Сделайте тест:
if (display.getGameAction(keyCode) == Display.GAME_LEFT || display.getGameAction(keyCode) == Display.GAME_RIGHT)
{
if (tab.getSelectedIndex == 0)
tab.setSelectedIndex(1);
else
tab.setSelectedIndex(0);
}
else if (display.getGameAction(keyCode) == Display.GAME_UP || display.getGameAction(keyCode) == Display.GAME_DOWN)
{
if (list.hasFocus())
super.keyReleased(keyCode);
}