2013-08-09 11 views
7

標準のActionBarを採用したAndroidアプリケーションを開発しています。
特定の画面には、表示されるデータの特性に応じて、条件付きで必要なフィルタアイコンが表示されます(
など)。一部のデータはフィルタリング可能です
他にはありません。
私は、アクションバーにアクションバーのアイコンを隠すプログラマティックな候補と思われるメソッドを見つけることができません。 アクションバーのアクションアイコンを有効/無効にする方法はありますか?
または
アクションバーのアクションアイコンを非表示/非表示にするにはどうすればよいですか?
AndroidのActionBarアクションアイコンの非表示/非表示を動的に有効/無効にします

答えて

12

これを見て、実行時にメニュー項目を変更する方法を示します。変更したいとき

MenuItem item = mMenu.findItem(R.id.addAction); 
item.doSomething() 

:あなたはたとえばonCreateOpionsMenu(内部のあなたの活動のメンバ変数としてメニューを保存)してから、このような何かを行うことができ

http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu

特定のメニュー項目の何か。

+0

Phil、時間を割いていただきありがとうございます。それはまさに私が必要としたものです。恥ずかしく感じました。私はそれを自分で見つけることができませんでした:-) – Hector

2

私が理解するように、左上のアクションバーに表示されるアイコンを削除する必要があります。

あなたは、コードのこのシンプルなラインであることを行うことができます。

final ActionBar actionBar = getActionBar();  
actionBar.setDisplayShowTitleEnabled(false); 

そして、あなたはアプリ名の試みを取り除くしたい場合:

actionBar.setDisplayShowHomeEnabled(false); 

・ホープ、このことができます。

+0

OPが要求していたものではありません –

0

また、これを試すことができます。

final ActionBar actionBar= getActionBar(); 
actionBar.hide(); 

それはアイコンとタイトルを非表示になります。

は、あなたのインポートを忘れないでください:

import android.app.ActionBar; 

グッドラック

2

あなたはonPrepareOptionsMenu()メソッドをオーバーライドすることでそれを行うことができます。 は、ここでは、アクションバーでメニューボタンをクリックするたびしかし、この方法では唯一と呼ばれる小さな例

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    if (count < 1) 
     menu.getItem(4).setEnabled(false); //disable menuitem 5 
    if (!after) 
    menu.getItem(1).setVisible(false); // invisible menuitem 2 
    invalidateOptionsMenu(); 
    return true; 
} 

です。アクションバー(メニューボタンを除く)にアイコンがある場合は、それをクリックしてもOnPrepareOptionsMenu()メソッドはトリガーされません。このメソッドを手動でトリガーするには、メソッドでinvalidateOptionsMenu()を使用できます。このように

void yourMethod() { 
... 
invalidateOptionsMenu(); 
... 
} 
+0

Fragmentでそれを行う方法?どのようにinvalidateOptionsMenu();? –

+1

getActivity()。invalidateOptionsMenu()が動作するはずです。 –

関連する問題