Question

J'ai cette question concernant les activités Android et AndroidManifest.xml.La question s'est posée lorsque je travaillais avec des servlets Java et que je voulais créer un serveur "basé sur un module" ou quelque chose de similaire à un serveur basé sur un plugin.Cela fonctionne bien et je peux charger dynamiquement les servlets que je souhaite, en utilisant une approche de code similaire à celle-ci : Ajouter dynamiquement un servlet au servletConfig.Les servlets sont trouvés et mappés dynamiquement lors du démarrage du serveur.

La question ici n'est pas de savoir comment trouver les activités appropriées, ou comment en créer une nouvelle instance, ou comment les démarrer, cette partie que j'ai comprise.Je peux parcourir mes packages et trouver les classes d'activité appropriées, en créer de nouvelles instances et les ajouter à une liste.

J'utilise un interface que toutes les Activités doivent mettre en œuvre pour être une activité valable.De cette façon, je peux créer de nouvelles pièces, extensions ou nouvelles fonctionnalités pour mon application, et tout fonctionne.Dans mon application, j'ai une liste de boutons sur lesquels les utilisateurs peuvent cliquer, et la liste des boutons est générée en les ajoutant à ma vue à l'aide d'un ListView.

private void displayLoadedContent() {
    View v = inflateLayout(R.layout.buttonlayout);
    ListView view = (ListView) v.findViewById(R.id.list);
    view.setAdapter(new ListButtonAdapter(this, content));
}

content est déclaré comme

List<MyActivityInterface> content;

et ListButtonAdapter s'étend BaseAdapter.

Donc pas de problème là-bas.Le problème est que je dois déclarer chacune de mes activités dans AndroidManifest.xml.Ce fichier est comme une grande liste d'activités possibles à afficher, et plutôt compliqué, donc je ne vais pas afficher le code ici.

Je me rends compte que je devrai ajouter une activité au manifeste, mais j'espérais qu'une seule activité suffirait.Mon approche peut, à bien des égards, être considérée comme une Modèle de contrôleur avant, où chacune des activités est responsable du chargement et de l’affichage de l’activité dont elle a besoin.

Je demande simplement s'il est même possible d'enregistrer dynamiquement des activités dans le manifeste (ou de leur permettre de s'exécuter d'une autre manière), et si non, existe-t-il une autre solution valable ?

Était-ce utile?

La solution

Android exige que chaque activité soit enregistrée dans votre AndroidManifest.xml déposer à l’avance.Une fois déployée, votre application sera hébergée sur un appareil sous la forme d'un fichier .apk, qui ne pourra pas être modifié (en dehors d'être mis à jour/remplacé par un nouvel APK).

Si je comprends bien la question, vous ne voulez tout simplement pas avoir à lister un grand nombre d'activités dans votre fichier manifeste ? Fragments n'avez pas besoin d'être enregistré dans le fichier manifeste, donc si votre objectif est d'échanger dynamiquement les composants de l'interface utilisateur, ce serait la réponse.Les fragments sont disponibles depuis la version 1.6 via le Bibliothèque de support.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top