2017-10-09 3 views
-1

Je souhaite créer une "famille" d'applications. Ces applications auront toutes la même apparence avec des changements mineurs entre elles. Les changements pourraient être dans les chaînes, certaines des images et aussi quelques changements dans les méthodes du cycle de vie. La façon dont je pensais faire est de faire un module de bibliothèque dans Android Studio qui aura un aspect et une implémentation par défaut communs à toutes les applications, et qui permettra à chaque application de changer ce qu'elle doit elle-même. La bibliothèque inclura toutes les activités, effectuera les transactions de fragment et tiendra les ressources. Le problème est que je ne suis pas sûr de savoir comment remplacer le comportement des méthodes du cycle de vie. Pour les chaînes et les images, ce n'est pas un problème car vous pouvez simplement leur donner le nom qu'ils ont dans la bibliothèque, et la bonne ressource de l'application sera prise.Comment corriger le comportement d'un module de bibliothèque

La façon dont je pensais de passer outre le comportement est quelque chose comme ceci:

public class MyAppFragment extends MyLibraryFragment 
{ 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     View v = super.onCreateView(inflater, container, savedInstanceState); 
     //add more stuff to the originial implementation here 
     return v; 
    } 
} 

mais bien sûr, la bibliothèque ne connaît pas le nouveau fragment et son code permettra seulement d'instancier le MyLibraryFragment. Alors, comment puis-je dire à la bibliothèque d'instancier le fragment de l'application et non de la bibliothèque? Même question pour les activités qui, je suppose, seront les mêmes.

Répondre

0

vous pouvez essayer de travailler avec des arômes. vous donne la possibilité de travailler avec le même code mais avec des packages différents et des modifications mineures.

http://www.androidauthority.com/building-multiple-flavors-android-app-706436/

et ceci: https://stackoverflow.com/a/30334392/3257513

+0

Au moins la lecture de la réponse que vous avez lié à, il semble que cette solution me fera multiplies if-else pour vérifier la saveur sans me permettre d'utiliser l'héritage ? –