2012-04-13 119 views
1

我的應用程序是這樣的:onCreateOptionsMenu不會出現

TabActivity 
    Tab 1 (ActivityGroup) 
     Activity > Activity > MapActivity 
    Tab 2 (ActivityGroup) 
     MapActivity 

的問題是,在標籤2 MapActivity選項菜單沒有出現,甚至還可以顯示一個錯誤。但在第一個MapActivity完美。我在方法onCreateOptionsMenu中放置了一個斷點,但是甚至輸入了它。

我用這個tutorial讓我的應用程序基於TabHost。

任何人都可以幫助我知道爲什麼在一個作品和其他不是?

在此先感謝。

UPDATE

關於版本:

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="13" /> 

首先MapActivity類:

public boolean onCreateOptionsMenu(Menu menu) { 
    menu.add(0, 0, 1, "Nearest"); 
    menu.add(0, 1, 1, "Directions"); 
    return true; 
} 

二MapActivity類:

public boolean onCreateOptionsMenu(Menu menu) { 
    menu.add(0, 0, 1, "Nearest"); 
    menu.add(0, 1, 1, "Region"); 
    return true; 
} 
+0

你能告訴我們一些代碼嗎?你在哪裏打電話給onCreateOptionsMenu? – 2012-04-13 21:18:15

+0

請添加您的onCreateOptions代碼。此外,您定位/運行此應用的Android版本是什麼? – 2012-04-13 21:20:15

+0

我更新了問題。平臺是2.3.3,API級別10.謝謝。 – 2012-04-13 22:24:58

回答

3

基本上TabHost只有一個選項菜單。

我還沒有測試過它,但我的猜測是它只是使用第一個從onCreateOptionsMenu返回true的活動。如果你想爲每個標籤選擇不同的選項菜單,你需要做幾件事情:

1)子類TabHost和覆蓋onCreateOptionsMenuonPrepareOptionsMenu

2)當標籤更改(不記得你如何聽這個事件,谷歌它),請致電invalidateOptionsMenu,這將強制呼叫onPrepareOptionsMenu

3)在onPrepareOptionsMenu,記得打電話menu.clear(),然後做你在做onCreateOptionsMenu來創建標籤特定選項菜單的常規菜單通貨膨脹的東西。