Je suis en train d'apprendre à créer des menus d'options pour les applications Android.Menus d'options DRY sur Android
Dans le guide il a la pointe suivante pour rester au sec avec des menus:
Astuce: Si votre application contient multiples activités et certains d'entre eux fournissent le même menu Options, envisager la création d'une activité implémente rien sauf les méthodes onCreateOptionsMenu() et onOptionsItemSelected(). Puis étendre cette classe pour chaque activité qui devrait partager le même menu Options . De cette façon, vous devez gérer un seul jeu de code pour gérer les actions du menu et chaque classe descendante hérite des comportements du menu.
Cela semble problématique. Si les Activity
qui ont besoin de partager les mêmes options héritent de classes différentes, à quoi mon OptionsMenuActivity
doit-il hériter? J'ai lu que Java ne supporte pas l'héritage multiple, alors comment vous débrouillez-vous?
Je comprends cette approche. Mais que faire si Activity1 étend Activity et Activity2 extends une autre classe? – user94154
L'activité 2 ne peut pas étendre une autre classe. Si vous définissez une sous-classe d'activité, vous devez étendre Activity ou une sous-classe d'activité. La réponse d'Achie est bonne –
C'est un inconvénient de Java qui peut être contourné dans la plupart des cas en implémentant soigneusement des classes et en utilisant des interfaces pour implémenter de tels cas. Mais dans notre cas, puisque nous ne voulons pas écrire toute la classe d'activité d'Android, c'est un compromis que nous devons faire. Dans le cas ci-dessus, il se peut que nous devions étendre TabActivity ou MapsActivity. Dans ceux-ci et tous les autres cas similaires, nous devrons implémenter le code du menu des options dans les activités respectives. – achie