Chcę ustawić pasek narzędzi na mojej aktywności, która rozszerza FragmentActivity. Wiem, że dla użycia metody setSuppoertActionBar(toolbar)
rozszerzamy AppCompatActivity
zamiast FragmentActivity
, ale przesłonię metodę onMenuItemSelected(int featureId, MenuItem item)
, która jest ostateczna w AppCompatActivity
i ostateczna metoda nie może przesłonić. więc jestem ograniczony do przedłużenia FragmentActivity
.jak ustawić pasek narzędzi na FragmentActivity?
Oto mój kod:
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);
}
Widziałem wiele odpowiedzi związane z tym pytaniem, ale każdy mówi rozciąga AppCompatActivity
zamiast FragmentActivity
ale chcę ustawić pasek narzędzi, a także wymuszenia onMenuItemSelected(int featureId, MenuItem item)
metody.
co powinienem zrobić, proszę o pomoc.
Próbowałem już 'onOptionsItemSelected' jeszcze? – Shvet
Tak, rozumiem, znalazłem rozwiązanie według twojej sugestii. Rozszerzam AppCompatActivity zamiast FragmentActivity i zmieniam metodę onMenuItemSelected() za pomocą metody onOptionsItemSelected(). dzięki :) –