Я хочу установить панель инструментов о моей деятельности, которая распространяется FragmentActivity. Я знаю, что для использования метода setSuppoertActionBar(toolbar)
мы продолжаем AppCompatActivity
вместо FragmentActivity
, но я переопределяю метод onMenuItemSelected(int featureId, MenuItem item)
, который является окончательным в AppCompatActivity
, и окончательный метод не может переопределить. поэтому я ограничусь распространением FragmentActivity
.Как установить панель инструментов на 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' еще? – Shvet
да, я понял, я нашел решение по вашему предложению. Я расширяю AppCompatActivity вместо FragmentActivity и меняю метод onMenuItemSelected() методом onOptionsItemSelected(). благодаря :) –