2010-12-27 12 views
1

私のブラックベリーアプリケーションでは、メニュー項目がほとんどありません(自分で作成したmakeMenu())の画面があります。 この画面では、このメニュー項目の2つを削除することがあります。 ただし、menu.deleteItem()メソッドが機能しません。ブラックベリーのメニュー項目を削除します

画面の新しいインスタンスを再作成せずに、アプリケーションメニューのメニュー項目を削除する方法はありますか?既に構築されたメニューのために本当ですか?またはmb私はメニュー/画面を若干更新する必要がありますか?

Thanx。メニューは、それが選択されている地点で描かれ

答えて

3

ので、私が行うすべては、静的ではないものに条件を設定して、以下の例:

protected void makeMenu(Menu menu, int instance) { 
    menu.add(staticMenuItem); 
    if (condition) menu.add(dynamicMenuItem); 
} 
+0

はあなたが後にしているか、に見えるメニューが必要なのか何これですユーザーが見ている間にアイテムが表示され消えていますか? –

+0

しかし、画面が既にメニュー項目のセットで表示されていて、条件が変更されたらどうすればいいですか?画面の再表示なしにメニューからメニュー項目を削除するにはどうすればよいですか? –

+0

ああ、あなたは本当にアイテムが消えるのを目で確認する必要があります。 menu.deleteItemはその目的には適していません。あなたがそれを行う可能性があるものはkeyDownをオーバーライドするので、メニューボタンが押されるとアプリケーションがカスタムフィールドを読み込むようになります。そうすれば、より多くのコントロールができます。また、メニューがメニューの条件を使用するのに十分なほどまれである場合は、選択したメニューが機能しない理由を説明するダイアログを表示するだけです。 "このアイテムはオフラインで利用できません" –

関連する問題