Più attività hanno onCreateOptionsMenu identico, onOptionsItemSelected e onKeyDown. Quando applico un cambiamento, devo farlo in ogni attività (tempo di lavoro * conteggio delle attività). C'è un modo per riutilizzare il codice (ad esempio, scrivere tutti e tre i metodi in un unico posto e inserire un riferimento ad esso in ogni attività)?Attività multiple, onCreateOptionsMenu identiche, onOptionsItemSelected e onKeyDown. Posso in qualche modo riutilizzare il codice?
risposta
Certo, basta creare la propria classe Activity
da cui ereditano tutte le classi.
Un po 'come questo - creare una classe base astratta che eredita da Activity
e implementa comportamento comune:
public abstract class MyBaseActivity extends Activity {
public Menu onCreateOptionsMenu(Menu menu) {
/* do common menu stuff */
}
}
poi prendere la vostra attività individuali ereditano dalla classe base:
public class MyActivity extends MyBaseActivity {
// inherits behaviour from MyBaseActivity
// so don't need to re-implement onCreateOptionsMenu
}
Certo, crea un'attività di base e scrivi il tuo codice lì.
public class MenuActivity extends Activity {
// Menu stuff goes here
}
Quindi estendere le attività separate da quello.
public class MyActivity1 extends MenuActivity { ... }
public class MyActivity2 extends MenuActivity { ... }
public class MyActivity3 extends MenuActivity { ... }
Non posso accettare due risposte come corrette, quindi sto solo andando a votare la tua. –
Nessun problema, abbiamo pubblicato allo stesso tempo. Penso che Dave abbia dato il meglio qui (maggiori dettagli), quindi accetta la sua risposta. :) –
- 1. Il frammento onOptionsItemSelected non viene chiamato
- 2. OnOptionsItemSelected in activity viene chiamato prima onOptionsItemSelected in fragment. Altro modo possibile?
- 3. Frammento attività di cattura onKeyDown e l'uso in frammento
- 4. Riutilizzare le attività precedenti?
- 5. Come chiamare onCreateOptionsMenu dal codice
- 6. Come riutilizzare il codice in molteplici Enum
- 7. onKeyDown e onKeyLongPress
- 8. Come riutilizzare il codice con VBA
- 9. Riutilizzare la barra delle azioni in tutte le attività dell'app
- 10. Come utilizzare onKeyDown diversa in frammento di un stessa attività
- 11. Come riutilizzare il codice in QML
- 12. L'aggiunta di `noexcept (false)` avvantaggia il codice in qualche modo?
- 13. VS Codice e attività con il nodo
- 14. XML singolo, attività multiple e là prestazioni
- 15. Come posso utilizzare onCreateOptionsMenu in un frammento all'interno di una scheda Attività? (Sherlock ActionBar)
- 16. Come posso riutilizzare una connessione HttpClient in modo efficiente?
- 17. EditText OnKeyDown
- 18. Contratti e attività del codice
- 19. Posso usare in qualche modo il codice C# o la libreria C# nel progetto java android?
- 20. Super classi multiple e riutilizzo del codice
- 21. Override onOptionsItemSelected from SherlockFragmentActivity
- 22. Riutilizzare Google Map v2 su più frammenti in singola attività
- 23. onCreateOptionsMenu in a Fragment lifecycle
- 24. riutilizzare un blocco di codice in YAML
- 25. onOptionsItemSelected non chiamato quando si utilizza actionLayout (SherlockActionBar)
- 26. Attività di ricerca multiple con suggerimenti
- 27. Posso in qualche modo alias R in Android?
- 28. Android: attivazione del onCreateOptionsMenu
- 29. Come riutilizzare il codice html in ogni pagina html?
- 30. onCreateOptionsMenu chiamato prima onCreate android
Ovviamente, grazie! Entrambe le risposte sono corrette e scritte sull'ora esatta, quindi approverò la tua risposta come quella giusta (meno la reputazione di @alextsc) e la risposta alextsc al voto alto. –