私が構築しているアプリケーションには、タブと各タブのリストがあります。私が望む動作は、左/右のナビゲーションキーを押すと、選択したタブが変更されることです。Up/Down Nav キーを押すと、リストの選択インデックスが変更されます。
LWUIT GUI ビルダーを使用してStateMachine/StateMachineBase
クラスを生成しました。
私は一日中これを修正しようとしてきました。助けてください。
私が構築しているアプリケーションには、タブと各タブのリストがあります。私が望む動作は、左/右のナビゲーションキーを押すと、選択したタブが変更されることです。Up/Down Nav キーを押すと、リストの選択インデックスが変更されます。
LWUIT GUI ビルダーを使用してStateMachine/StateMachineBase
クラスを生成しました。
私は一日中これを修正しようとしてきました。助けてください。
なぜあなたはあなたの人生を複雑にするのですか?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);
}
Pheromix の答えは正しいですが、UIBuilder
. UIBuilder でフォームの作成をオーバーライドするには、メソッドをオーバーライドします。
protected Component createComponentInstance(String componentType, Class cls) {
if(cls == com.sun.lwuit.Form.class) {
return new MyFormSubclass();
}
return super.createComponentInstance(componentType, cls);
}
タブ選択の動作をオーバーライドするオプションがありますが、最も正確な動作を得るには、これが最善の方法かもしれません。