実行時にアクションバーアイテムを追加するにはどうすればよいですか?実行時にアクションバーアイテムを追加する方法
私はactionBarSherlock
を使用していますが、イベントが発生したときにいくつかのボタンを追加する必要があります(たとえば、RSSからテキストを取得するなど)。私は固定されたXMLに依存することはできません。
実行時にアクションバーアイテムを追加するにはどうすればよいですか?実行時にアクションバーアイテムを追加する方法
私はactionBarSherlock
を使用していますが、イベントが発生したときにいくつかのボタンを追加する必要があります(たとえば、RSSからテキストを取得するなど)。私は固定されたXMLに依存することはできません。
あなたは、このようなコードでメニューを作成することができます
/*************************************/
/* Create the actionbar options menu */
/*************************************/
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add(0, 0, 0, "History").setIcon(R.drawable.ic_menu_recent_history)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(0, 1, 0, "Settings").setIcon(R.drawable.ic_menu_manage)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return true;
}
ブールのチェックインサイド。
あなたは、メニューを再作成するsupportInvalidateOptionsMenu()を呼び出す必要があります。
あなたは、その後、あなたのボタン
boolean hasRss = false;
を表示する方法onCreateOptionsMenu(メニューメニュー)をオーバーライドし、hasRssが真か偽であるかどうかを確認する必要があるかどうかを示すフラグを維持することができます。 trueの場合は、ボタンを追加して何でもします。あなたはRSSかを持っているなら、あなたは関係なく、あなたが常に表示したいあなたの通常のボタンを追加することができません
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
if (hasRss)
{
menu.add(Menu.NONE, 0, Menu.NONE, "View RSS").setIcon(R.drawable.ic_menu_view)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
menu.add(Menu.NONE, 1, Menu.NONE, "Normal button that is always there").setIcon(R.drawable.ic_menu_button)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
あなたがあなたの値を取得するたび=真をごhasRss値を設定する必要があり、アクションをリロードするinvalidateOptionsMenu();
を呼び出しますバーメニューの項目
ありがとうございます。よく働く!! – hdoria
ありがとうございます。よく働く!! – hdoria