簡體   English   中英

無法在ActionBarSherlock中創建選項菜單

[英]Can't create an options menu in ActionBarSherlock

我正在嘗試在ActionBarSherlock的幫助下在Android 2.3應用程序中實現選項菜單。 但它沒有顯示。這是一個簡單的XML布局文件“breadcrumb_bar_menu”,用於選項菜單:

<?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
  <item android:id="@+id/inbox"
       android:icon="@drawable/topbar_btn_inbox"      
       android:title= "@string/about" />    

 <item android:id="@+id/sent"
       android:icon="@drawable/topbar_sent"      
       android:title="@string/about" />    
    </menu>

這是我從SherlockActivity繼承的活動:

    public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.breadcrumb_bar_menu, menu);
    return true;
}

但我看不到活動上的選項菜單。我做錯了什么?

在菜單xml項的屬性中包含android:showAsAction="ifRoom"

 <?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/inbox"
       android:showAsAction="ifRoom"
       android:icon="@drawable/topbar_btn_inbox"      
       android:title= "@string/about" />    

    <item android:id="@+id/sent"
       android:showAsAction="ifRoom"
       android:icon="@drawable/topbar_sent"      
       android:title="@string/about" />    
 </menu>
public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.actionoption, menu);
    return true;
}

您必須為deivce設置navigationmode。 也是你的設備有硬菜單鍵,如果是,那么你將看不到三個菜單選項點。

您需要告訴系統您將使用菜單:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

使用Actionbarsherlock使optionmenu像其他API> 2.3.3一樣工作我做了以下:

菜單文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/navigateMenu" 
android:icon="@drawable/icon"
android:title="Menu"
android:orderInCategory:"9"
android:showAsAction="always"
android:titleCondensed="Menu">
<menu>
<item android:id="@+id/id1"
android:icon="@drawable/option1"
android:title="option1" />
<item android:id="@+id/id2"
android:icon="@drawable/option2"
android:title="option2" />
<item android:id="@+id/id3"
android:icon="@drawable/option3"
android:title="option3" />
</menu>
</item>
</menu>

在您的活動代碼中:獲取父MenuItem的引用並使用SHOW_AS_ACTION_ALWAYS屬性將其附加到操作欄請參閱相同的代碼:

活動文件:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.sample_menu, menu);

//To make optionmenu visible on Actionbar for 2.3.3

menu.findItem(R.id.navigateMenu).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
        return true;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM