2012-09-25 28 views
1

我具有延伸酶活性的BaseActivity類,在其餘有傳承 - onCreateOptionsMenu(超級調用)

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // draw menu stuff 
    } 

然後我已經其它類延伸BaseActivity,如

HelpActivity延伸活動

我認爲根據繼承規則,它會自動繼承BaseActivty的onCreateOptionMenu調用。它不,所以我不知道爲什麼。

但無論如何,在HelpActivity我加了這一點:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
return super.onCreateOptionsMenu(menu); 
} 

,要麼(即沒有菜單已於Galaxy Nexus的顯示),沒有工作。所以我從字面上將BaseActivity的onCreateOptionsMenu調用複製並粘貼到了HelpActivity中,並且工作正常。爲什麼會這樣?

編輯: 有兩點需要注意: 當我說這不工作,我的意思是:我有一個Galaxy Nexus和菜單甚至不會顯示在動作條(ActionBarSherlock)。當它工作時,我得到菜單,包括菜單省略號。

其次:

根據Android的文檔:

提示:如果您的應用程序包含多種活動,其中一些 提供相同的選項菜單,考慮創建 實現什麼,除了一個活動onCreateOptionsMenu()和onOptionsItemSelected()方法。然後擴展這個類,每個 活動應該共享相同的選項菜單。這樣,您就有 來管理處理菜單操作的一組代碼,並且每個後代類都會繼承菜單行爲。

得到這個來自:Re-using Options menu code

回答

1

根據您粘貼你的HelpActivity不延長BaseActivity
HelpActivity extends Activity

+0

我的上帝,那個班級長約1200行,我按ctrl + z,它恢復了擴展調用。面對時刻的確定蛋。 – StackOverflowed