我正在處理一個Android項目,我試圖覆蓋父類的方法。我仍然希望這個方法能夠工作,唯一的問題是我需要添加一行。這是我BaseFragment方法:如何覆蓋從父類的方法
protected void setUpToolBar(String title, boolean home){
Toolbar toolbar = (Toolbar)getView().findViewById(R.id.toolbar);
if (toolbar != null){
toolbar.setTitle(title);
if(home){
toolbar.setNavigationIcon(R.drawable.arrow_left);
}
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
return false;
}
});
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
}
}
我要保留所有的東西的工作,當我從我的FeedFragment(從BaseFragment延伸)調用,並添加這一行:
toolbar.inflateMenu(R.menu.menu_main);
我需要的因爲FeedFragment上的菜單與PostFragment上的不同,並且這兩個片段都從BaseFragment繼承。
我覺得我應該這樣做:
@Override
private void setUpToolBar(){
toolbar.inflateMenu();
}
它不工作,雖然。對此有何想法?
obs:這個問題被標記爲可能的重複,但另一個是非常理論的,我不認爲這會幫助我找出如何解決我的問題。所選的答案只是碰到了頭上的釘子。
例如'@Override protected void setUpToolBar(){super.setUpToolBar();/*一些額外的東西* /}' – Michael
可能的重複[爲什麼你不能減少Java子類中方法的可見性?](http://stackoverflow.com/questions/1600667/why-cant-you-減少最可視性對的一方法-IN-A-java的子類) – AxelH