2017-06-01 14 views
0

メニュー項目を隠したり表示したりするためにいくつかの手順を実行しました。しかし残念ながら私のアプリはクラッシュします。私は何が間違っていますか?任意の助けを事前にアクティビティの開始時にメニュー項目が非表示になっています

private MenuItem menuItem; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_alcohol_type_page); 

invalidateOptionsMenu(); 
    menuItem.setVisible(false); 
} 

//TOOLBAR SETTINGS 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.activity_menu_icon, menu); 

    menuItem = menu.findItem(R.id.view_orders); 

    return super.onCreateOptionsMenu(menu); 
} 

ありがとう:

これが私の活動です! :D

+1

あなたのstacktraceを投稿すると、それはヌル参照だと思います。 – Ibrahim

+0

@IbrahimAliはいあなたは正しいです –

答えて

1

更新onCreateOptionsMenuはのonCreate後に呼び出される

private MenuItem menuItem; 
    private boolean menuItemShow; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_alcohol_type_page); 

    } 

    //TOOLBAR SETTINGS 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.activity_menu_icon, menu); 

    menuItem = menu.findItem(R.id.view_orders); 
    menuItem.setVisible(menuItemShow); 
    return super.onCreateOptionsMenu(menu); 
    } 

、あなたはのonCreateメソッドのメニュー項目の可視性を設定すべきではありません。

+0

はい、ありがとうございました。しかし、私はメニュー項目を隠して表示したいと思っています。 onCreateでmenuitemを非表示にすると、アプリをクラッシュさせてどうすればいいのですか? –

+0

アクティビティのフィールドにメニュー項目の可視性を識別し、メニュー項目を挿入したときの可視性を設定する – huangsu

+0

例を追加してみることができます – huangsu