2009-06-18 14 views
29

Welche Sie denken, ist der beste Weg, um einen Assistenten wie Anwendung (Benutzer kann zwischen Bildschirmen mit einem nächsten und zurück-Taste, und jeder Bildschirm hat einige Zustandsdaten zu speichern) in Android-Plattform.Machen Sie einen Assistenten wie Anwendung in Android

Ich kann vor allem in zwei Ansätze denken:

  1. für jeden Bildschirm eine Aktivität + Ansicht Mit und dann mache ich den Bildschirm Schalter durch jede Aktivität aufruft. Was macht das schön ist, dass ich die System-Back-Taste als meine Back-Handler verwenden kann und ich muss mich nicht darum kümmern, auch jede Aktivität wird ihren eigenen Zustand speichern.

  2. Mit einer Aktivität und vielen Ansichten, und was ich wechseln Ansichten in jedem Bildschirm ändern, das hilft mir, mehr Code wiederverwenden, macht aber speichern Zustände ein Durcheinander.

Was denken Sie? Welches ist der beste Weg, dies auf Android zu tun?

Antwort

12

Ich schlage vor, mit 2 gehen, wie es das Ziel der Aktivitäten und Ansichten passt. Das Speichern in diesem Fall ist einfach - wenn Sie das MVC-Muster verwenden, können Sie einfach ein Modellobjekt haben, das an die Ansichten weitergegeben wird. Jede Ansicht enthält Teile des Modells, die gelesen/geschrieben werden können. Egal wo Sie sind, das Modell sollte immer den aktuellen Zustand haben. Wenn Sie entsorgt werden, speichern Sie das Modell. Die Wiederherstellung funktioniert automatisch, da Sie beim Anzeigen jeder Seite bereits das Modell gelesen haben.

+0

scheint eine gute Option – Aada

+2

Es gibt eine Bibliothek, die Sie sehr einfach Assistenten-Funktionalität erstellen können, überprüfen Sie [WizarDroid] (http: // wizardroid.codepond.org). Es ist gut dokumentiert und ständig weiterentwickelt. –

+0

@ CodePond.org Das ist genau das, was ich brauchte. Es funktioniert großartig und hat mir keine Zeit genommen, das Beispiel nachzuahmen. – theblang

1

Ich denke, 2 ist besser. Setzen Sie jede "Seite" in eine Ansicht und wechseln Sie sie dann abwechselnd. Macht es einfach, schöne Übergänge zu machen. In welchem ​​Zustand denkst du zu halten? Der einzige, der nicht automatisch funktioniert, wäre der Fokus, und ich denke, dass Sie das wahrscheinlich jedes Mal zurücksetzen möchten, wenn Sie Seiten wechseln. Es ist auch trivial, zurückzukommen, wenn Sie denken, dass dies das richtige Verhalten für Ihre App ist.

Mit 1 können Sie fast Ihren gesamten Code wiederverwenden (definieren Sie einfach Ihre eigene WizardBase-Klasse), aber ich denke, dass Aktivitäten langsamer starten (und mehr Arbeitsspeicher benötigen) als zwischen Ansichten zu wechseln.

6

Ich bin mit dem ersten Ansatz gegangen, da es natürlicher erscheint. Eine andere App verwendet ViewFlipper zum Wechseln der Ansichten, aber das ist alles andere als ein Assistent.

+0

So soll Android funktionieren. –

+0

@Isaac Waller Was ist? keinen ViewFlipper verwenden? –

+0

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

17

Ich habe eine leichte Android-Bibliothek entwickelt, die auf dem ViewPager von Android basiert und für die Erstellung von assistentenähnlichen Aktivitäten verwendet werden kann. Schau es Dir an: WizarDroid.

+4

Dies benötigt mehr Stimmen. Nette Lösung –

+0

Dies ist eine nette Lösung, aber nicht ganz allgemein. Das Vertrauen auf den Viewpager macht es notwendig, dass mindestens ein Fragment auf jeder Seite erzeugt wird, was nicht zweckmäßig ist, wenn der Inhalt des nächsten Schritts noch nicht bestimmt ist. –

+0

kann nicht herausfinden, wie man Wizardroid verwendet, das auf Unterstützung lib 19.x w/neuerer Unterstützungslibversionen – m02ph3u5