2017-08-23 11 views
0

私は同じ活動のフラグメント間のナビゲーションに依存によってOptionsMenu隠すためにしようとしている: -拡張前のオプションメニューの取得方法?

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    this.menu = menu; 
    getMenuInflater().inflate(R.menu.result, menu); 
    return true; 

} 

などのフラグメントの位置に依存することによって、私はそれを隠す:私の問題は、ということです

if (newStepPosition == 0) { 
     if (menu != null){ 
      menu.setGroupVisible(R.id.resultGroup, false); 
     } 
    } 
    if (newStepPosition == 1) { 
      if (menu != null){ 
      menu.setGroupVisible(R.id.resultGroup, true); 
     } 

    } 

私はoptionMenuを初めて見る必要があります。次に、そのアクティビティを作成して隠してスレッドワークを表示します。どうしたら回避できますか?

onCreat()のoptionMenuを非表示にする必要がありますが、機能しませんでした。

答えて

1

onCreateのメニューを非表示にすることはできません。まだ膨張していないためです。 、そうでない場合

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 

    menu.clear(); 

    // do what you want 

    return super.onPrepareOptionsMenu(menu); 
} 

onCreateOptionsMenu方法であなたのロジックを入れて、あなたが何かを更新する必要があるときinvalidateOptionsMenu()を呼び出す:

はこれを使用してみてください。

+0

ありがとうございますonCreateOptionsMenu –

0

私はonCreateOptionsMenuでこれを行いました。その後、その外観ロジックは完全に機能します。

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    this.menu = menu; 
    getMenuInflater().inflate(R.menu.result, menu); 
    if (menu != null){ 
     menu.setGroupVisible(R.id.resultGroup, false); 
    } 
    return true; 

} 
関連する問題