2012-06-07 68 views
0

Google文檔說菜單被替換爲3.0中的ActionBar,菜單將變成ActionBar本身。所以我開始使用3.0和4.0的模擬器,但菜單仍然顯示爲菜單。我錯過了什麼嗎?菜單被ActionBar替換

編輯: 我使用的是minSdkVersion 4,它會在3.0或更高版本的設備中出現問題嗎?

+0

從文檔:在Android 3.0及更高版本中,選項菜單中的項目由操作欄顯示爲屏幕上操作項目和溢出選項的組合。 http://developer.android.com/guide/topics/ui/menus.html – adatapost

回答

2

您需要使用API​​級別15或更高來構建您的應用程序。要做到這一點,在你的清單,使用以下命令:

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="15" /> 

中的minSdkVersion定義的最低API與應用程序兼容,對其中的菜單仍然會出現一個菜單。在Android 3.0或更高版本上,菜單將與操作欄上的溢出按鈕一起出現。

Additionaly,您可以使用以下方法來顯示菜單項作爲動作:

if (VERSION.SDK_INT >= 11){ 
    theMenuItem.setShowAsAction(SHOW_AS_ACTION_IF_ROOM); 
} 

或XML

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

這個代碼將只在Honeycomb或更高的執行。

+0

更新了這個問題:) – xmen

+0

min SDK不會打擾3.0或更高版本的設備,因爲如果您使用targeSdkVersion它們將相互兼容。雖然你應該使用VERSION.SDK_INT技巧來避免調用sdk 4 – XGouchet

+0

中不可用的方法,但我正在通過xml創建菜單,我是否需要迭代所有項並在活動開始時調用此方法? – xmen