我具有延伸酶活性的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
我的上帝,那個班級長約1200行,我按ctrl + z,它恢復了擴展調用。面對時刻的確定蛋。 – StackOverflowed