Esiste un modo conveniente per mostrare le stesse opzioni del menu Opzioni in più attività?Riutilizzo del menu Opzioni codice
Esempio: nella mia app, visualizzo una guida TV in uno dei tre modi.
- Sette guida giornata (TabActivity con 7 schede)
- tutti i canali 'Ora mostra' (ListActivity)
- Tutti gli spettacoli oggi da ora di inizio (Attività - potrebbe essere modificato facilmente per ListActivity)
Per il menu Opzioni nella TabActivity
, il codice è molto semplice ...
@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 al momento sembra che ho bisogno di copiare/incollarlo alle altre due attività che non mi piace fare. Se cambio il codice del menu Opzioni per uno, dovrò farlo anche per gli altri due.
L'unica alternativa che posso pensare è che ho un 'aiutante' di classe (POJO) a cui ho potuto aggiungere un metodo e passare il context
in per consentire l'utilizzo del metodo getMenuInflator()
e un altro metodo ho potuto passare il risultato di item.getItemId()
da elaborare con l'interruttore.
Qual è il modo normale di avere più attività con lo stesso menu Opzioni?
Come ho scoperto, dimenticavo che i contenuti della scheda dell'attività di guida di 7 giorni sono in realtà ListActivitys: ho modificato anche l'attività "tutti mostra oggi ..." (numero 3 nella mia domanda) ListActivity e ha definito una classe base che ora si estende a tutti e tre. Uno di quei momenti in cui non si riesce a vedere la foresta per gli alberi. Grazie. – Squonk