2009-06-18 10 views
29

Ce que vous pensez est la meilleure façon de faire une application comme l'assistant (l'utilisateur peut naviguer entre les écrans avec un bouton suivant et précédent, et chaque écran doit enregistrer des données d'état) sur la plate-forme Android.Faire un assistant comme application dans Android

Je pense principalement dans deux approches:

  1. Avoir une activité + vue pour chaque écran, puis-je passer l'écran en appelant chaque activité. Ce qui fait que c'est sympa, c'est que je peux utiliser le bouton de retour du système comme mon back handler et je n'ai pas à m'en occuper moi-même, de plus chaque activité sauvera son propre état. Avoir une activité et de nombreuses vues, et ce que je change de vue dans chaque changement d'écran, cela m'aide à réutiliser plus de code, mais rend les états d'économie en désordre.

Qu'en pensez-vous? Quel est le meilleur moyen de le faire sur Android?

Répondre

12

Je suggère d'aller avec 2 car cela correspond à l'objectif des activités et des points de vue. Dans ce cas, l'état d'enregistrement est facile - si vous utilisez le modèle MVC, vous pouvez simplement avoir un objet modèle transmis aux vues. Chaque vue aura des parties du modèle qu'il peut lire/écrire. Peu importe où vous êtes, le modèle devrait toujours avoir l'état actuel. Si vous êtes disposé, sauvegardez simplement le modèle. La restauration fonctionne automatiquement puisque vous avez déjà lu le modèle lorsque vous affichez chaque page.

+0

semble une excellente option – Aada

+2

Il existe une bibliothèque qui vous permet de créer une fonctionnalité d'assistant très facile, consultez [WizarDroid] (http: // wizardroid.codepond.org). C'est bien documenté et en constant développement. –

+0

@ CodePond.org C'est exactement ce dont j'avais besoin. Cela fonctionne très bien et ne m'a pas pris le temps d'imiter l'exemple. – theblang

1

Je pense que 2 c'est mieux. Placez chaque "page" dans une vue, puis alternez simplement entre les afficher et les masquer. Cela rend trivial de faire de belles transitions. Quel état envisagez-vous de maintenir? Le seul qui ne fonctionne pas automatiquement serait le focus et je pense que vous voudrez probablement le réinitialiser chaque fois que vous changez de page. Il est également trivial de revenir en arrière si vous pensez que c'est le bon comportement pour votre application. Avec 1, vous pouvez réutiliser presque tout votre code (il suffit de définir votre propre classe WizardBase) mais je pense que les activités sont beaucoup plus lentes à lancer (et requièrent plus de mémoire) que de passer d'une vue à l'autre.

6

Je suis parti avec la première approche car elle semble plus naturelle. Une autre application utilise ViewFlipper pour changer de vue, mais c'est loin d'être un assistant.

+0

C'est la façon dont Android est censé fonctionner. –

+0

@Isaac Waller Qu'est-ce que c'est? Vous n'utilisez pas ViewFlipper? –

+0

http://developer.android.com/reference/android/widget/ViewFlipper.html – wes

17

J'ai développé une bibliothèque Android légère, qui est construite sur le ViewPager d'Android et qui peut être utilisée pour créer des activités de type assistant. Découvrez-le: WizarDroid.

+4

Cela nécessite plus de votes. Belle solution –

+0

C'est une bonne solution, mais pas très générale. La dépendance vis-à-vis du viewpager rend nécessaire la création d'au moins un fragment de chaque côté, ce qui peut ne pas être pratique si le contenu de l'étape suivante n'est pas encore déterminé. –

+0

ne peut pas comprendre comment utiliser Wizardroid qui dépend du support lib 19.x w/support plus récent lib versions – m02ph3u5