Czy istnieje wygodny sposób wyświetlania tych samych opcji menu Opcje w wielu działaniach?Ponowne użycie opcji Kod menu
Przykład: W mojej aplikacji wyświetlam przewodnik telewizyjny na jeden z trzech sposobów.
- Siedem dni prowadząca (TabActivity z 7 kart)
- Wszystkie kanały 'Teraz pokazuje' (ListActivity)
- Wszystkie pokazy dziś czas rozpoczęcia (aktywny - może być łatwo zmieniona na ListActivity)
do menu Opcje w TabActivity
, kod jest dość prosty ...
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
menu.clear();
inflater.inflate(R.menu.gv_options_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.view:
...
...
}
}
... b ut w tej chwili wydaje się, że muszę skopiować/wkleić go do dwóch pozostałych działań, które mi się nie podobają. Jeśli zmienię kod menu opcji na jeden, będę musiał to zrobić również dla pozostałych dwóch.
Jedyną alternatywą, o której mogę myśleć jest klasa "pomocnicza" (POJO), do której mogę dodać metodę i przekazać context
w celu umożliwienia użycia metody getMenuInflator()
i innej metody, w której mógłbym podać wynik item.getItemId()
do przetworzenia za pomocą przełącznika.
Jaki jest normalny sposób wykonywania wielu czynności w tym samym menu opcji?
Jak się okazało, zapomniałem, że zawartość zakładki z 7-dniowego przewodnika Aktywność to w rzeczywistości ListActivity - Zmieniłem "wszystkie pokazy dzisiaj ..." Aktywność (nr 3 w moim pytaniu), aby również być ListActivity i zdefiniowano klasę podstawową, którą wszystkie trzy rozszerzają. Jedna z tych chwil, kiedy nie można zobaczyć lasu dla drzew. Dzięki. – Squonk