10
votes

En Android, chaque écran doit-il être sa propre activité ou sa mise en page?

OK Je concevons une application qui possède une disposition très simple de 62 écrans de contenu, accessible via 27 écrans de menu. Au total, il s'agit de 89 activités.

Pour le moment, j'ai chaque écran de contenu d'une activité qui appelle simplement une mise en page XML (texte, boutons et image) et ajoute quelques fonctionnalités oncelick.

Chaque écran de menu est une liste de menus et appuyé sur chaque élément de la liste ouvre l'activité de l'élément (être un autre écran de menu ou un écran de contenu).

Pour le moment, je le teste avec 3 écrans de menu et un écran de contenu. C'est bien le défilement à travers eux, cependant, je suis inquiet que lorsque je termine l'application, il aura trop d'activités et rendra l'application lente et slugish. Dans une utilisation moyenne de l'application, j'imagine que l'utilisateur n'utiliserait pas plus de 10 activités, mais je ne sais pas si Android anticiperait la création des autres activités inutilisées ou quoi.

Donc, une autre façon de mettre en œuvre cela ne serait que quelques activités (peut-être 1 pour un MainMenu, 1 pour un sous-menu et 1 pour un état de contenu) qui explique simplement quelle disposition à afficher. Cependant, je pense que cela signifierait que chaque activité a un enfer de beaucoup plus de travail à faire et que je perds également la fonctionnalité de pressage de la touche arrière de la récupération de l'utilisateur via la hiérarchie du menu (et de coder un bouton arrière de remplacement sur chaque écran Impliquez un cas massif pour l'OnClick impliquant chaque mise en page possible, les 89 d'entre eux!).

Quelle serait la meilleure façon d'aller sur cette application?

Toute aide est très appréciée


2 commentaires

Que fait votre application? C'est un lottt d'écrans de contenu.


C'est une application de guidage, donc une page de contenu chacune des hôtels, des restaurants, des attractions, etc.


3 Réponses :


0
votes

Je ne pense pas que cela devienne lent juste à cause du nombre d'activités déclarées. Cependant, vous devriez probablement réutiliser certaines de vos mises en page sur les activités: http: // développeur .android.com / Ressources / Articles / Layout-Tricks-Merge.html


0 commentaires

0
votes

Vous pouvez réutiliser votre mise en page et utiliser des méthodes de staracity et de startactivitéForresult pour gérer l'efficacité des activités.


0 commentaires

2
votes

sauf si des mises en page et des comportements diffèrent de manière significative entre les activités de menu et les activités de contenu, j'irais avec "juste quelques activités d'activité".

Bouton arrière ne cassera pas, Android garde une trace de votre arriéré.

Avez-vous vraiment besoin de 89 mises en page différentes? Si c'est surtout content, ce qui est différent entre eux, stockez le contenu dans une base de données ou un fichier ou dans / res /


mises à jour:

ne serait-il pas plus facile d'avoir 1 activité par page de contenu que dans Oncreate () remplit dans la disposition avec le contenu approprié? < / strong>

dépend de la manière dont votre code Oncreate () va être. Si votre Oncreate () sera un commutateur géant avec 62 Différents Case Clauses, alors il est probablement préférable d'aller avec de petites activités séparées , pas un énorme. Si vous pouvez généraliser le code Oncreate () et le conserver ci-dessous, disons, 100 lignes et 10 déclarations de branche, ce serait un moyen d'aller.

pour donner un exemple Il y a quelque temps, je construisais une application simple qui possède une collection de questions d'examen et les présente au hasard à l'utilisateur. Chaque question a des questions de texte, d'illustration et de 2-4 réponses. Il y avait environ 500 questions différentes. Voici le code qui charge une question de la base de données et met à jour la mise en page. Notez que cela gère le nombre variable de réponses et la possibilité de certaines questions n'ayant pas d'illustration. xxx

Qu'entendez-vous par: le bouton arrière ne cassera pas, Android garde une trace de votre arriéré?

lorsque l'utilisateur passe de l'activité à activité, à travers les applications, la Le système Android conserve un linéaire Historique des activités de navigation la l'utilisateur a visité. C'est l'activité pile, également appelé la pile arrière. En général, lorsqu'un utilisateur commence une nouvelle activité, il est ajouté à l'activité pile, afin que vous appuyiez sur les écrans l'activité précédente sur la pile.

(de Directives d'activité et de conception de tâches )


2 commentaires

Pour le moment, j'ai 1 mise en page XML et 2 mises en page pour les 27 menus, celles-ci sont remplies au moment de l'exécution. Je pourrais faire la même chose pour que le contenu soit honnête, je n'en ai tout simplement pas pensé! Toutefois, si je l'ai fait de cette façon, cela ne serait-il pas le plus facile d'avoir 1 activité par page de contenu qu'encreate () remplit dans la disposition avec le contenu approprié? Et enfin, que voulez-vous dire par: le bouton arrière ne cassera pas, Android garde une trace de votre arriéré?


Merci peteris. Je suis allé avec "quelques activités" à la fin. J'ai 1 activité par type de menu (si elle a une icône ou non) et une activité par page de contenu. Je passe des intentions dans lesquelles définit le contenu approprié pour la mise en page. Cela semble beaucoup plus facile de cette façon!