Rob*_*Rob 1 java inheritance android toolbar
我正在研究一个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);
}
}
Run Code Online (Sandbox Code Playgroud)
当我从FeedFragment(从BaseFragment扩展)调用并添加以下行时,我希望保持所有工作正常:
toolbar.inflateMenu(R.menu.menu_main);
Run Code Online (Sandbox Code Playgroud)
我需要它,因为FeedFragment上的菜单与PostFragment上的菜单不同,并且两个片段都从BaseFragment继承.
我想我应该这样做:
@Override
private void setUpToolBar(){
toolbar.inflateMenu();
}
Run Code Online (Sandbox Code Playgroud)
虽然不行.有什么想法吗?
obs:这个问题被标记为可能重复,但另一个是理论上的,我认为这不会帮助我弄清楚如何解决我的问题.选择的答案只是击中头部.
你应该覆盖完全相同的方法签名
@override
protected void setUpToolBar(String title, boolean home){
super.setUpToolBar(title,home);
toolbar.inflateMenu();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1926 次 |
| 最近记录: |