【发布时间】:2016-04-24 12:57:37
【问题描述】:
我想在扩展 FragmentActivity 的 Activity 上设置 工具栏。我知道为了使用setSuppoertActionBar(toolbar) 方法,我们扩展了AppCompatActivity 而不是FragmentActivity,但是我覆盖了onMenuItemSelected(int featureId, MenuItem item) 方法,它在AppCompatActivity 中是final 的,而final 方法不能覆盖。所以我仅限于扩展FragmentActivity。
这是我的代码:
public class MainActivity extends FragmentActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar); -> error is here
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch(item.getItemId()){
case R.id.action_search:
onSearchRequested();
break;
}
return super.onMenuItemSelected(featureId, item);
}
我看到了很多与该问题相关的答案,但每个人都说扩展 AppCompatActivity 而不是 FragmentActivity 但我想设置工具栏以及覆盖 onMenuItemSelected(int featureId, MenuItem item) 方法。
我该怎么办,请帮忙。
【问题讨论】:
-
试过
onOptionsItemSelected了吗? -
是的,我明白了,我根据您的建议找到了解决方案。我扩展了 AppCompatActivity 而不是 FragmentActivity 并使用 onOptionsItemSelected() 方法更改了 onMenuItemSelected() 方法。谢谢:)
标签: android android-fragmentactivity android-toolbar