2017-01-17 39 views
0

我在menu-> main.xml中有菜單xml文件,其中有兩個項目可用。我有兩個活動,我想在第一個活動的溢出菜單中添加這兩個項目,但在第二個活動中,我想只在溢出菜單中添加一個項目。如何添加一個項目從menu.xml到android中的溢出菜單?

菜單 - > main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/action_refresh" 
     android:title="@string/action_refresh" 
     app:showAsAction="never"/> 
    <item 
     android:id="@+id/action_setting" 
     android:title="@string/action_setting" 
     app:showAsAction="never"/> 
</menu> 

那麼怎麼辦呢?

+0

如果你給'應用:showAsAction =「從不」'指那些菜單選項不是在所有可見在行動吧.. –

回答

4

您可以通過兩種方式做到這一點:

  1. 有兩個活動單獨的菜單個XML。一個與兩個項目和其他只有你需要的一個。

  2. 刪除不需要的菜單項中的第二個活動裏面的代碼,通過覆蓋onCreateOptionsMenu例如:

    public boolean onCreateOptionsMenu(Menu menu) { 
         getMenuInflater().inflate(R.menu.main,menu); 
         menu.removeItem(R.id.action_setting); 
         return super.onCreateOptionsMenu(menu); 
        } 
    
+0

謝謝,我明白了 –

0

你可以做到這一點編程方式隱藏它...例如

MenuItem refreshIcon = menu.findItem(R.id. action_refresh); 
refreshIcon.setVisible(false); 
0

獲取onCreateOptionsMenu(menu)到菜單項的引用和更新顯示在你的第二個活動,如下動作。

MenuItem menuitem = menu.finditem(your_id); 
menuitem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
0

您可以使用必須覆蓋的onCreateOptionsMenu。你可以嘗試這樣的事情,這取決於你需要在這裏展示一下:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    menu.getItem(0).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
} 
相關問題