2009-06-18 10 views
29

Quale pensi sia il modo migliore di fare una procedura guidata come l'applicazione (l'utente può navigare tra le schermate con un pulsante avanti e indietro, e ogni schermata deve salvare alcuni dati di stato) nella piattaforma Android.Creare una procedura guidata come l'applicazione su Android

I principalmente posso pensare a due approcci:

  1. Avere un'attività + leggi per ogni schermata e poi ho effettuare il passaggio dello schermo chiamando ogni attività. Ciò che rende questo bello è che posso usare il pulsante di back del sistema come gestore posteriore e non devo occuparmene io personalmente, così come ogni attività salverà il suo stato.

  2. Avere un'attività e molte viste e ciò che cambio in ogni schermata cambia, questo mi aiuta a riutilizzare più codice, ma rende gli stati di salvataggio un casino.

Cosa ne pensi? Qual è il modo migliore di farlo su Android?

risposta

12

Suggerisco di andare con 2 in quanto si adatta all'obiettivo di attività e visualizzazioni. Salvare lo stato in questo caso è facile: se si utilizza il pattern MVC, è sufficiente disporre di un oggetto del modello passato alle viste. Ogni vista avrà parti del modello che può leggere/scrivere. Non importa dove ti trovi, il modello dovrebbe sempre avere lo stato attuale. Se vieni eliminato, salva il modello. Il ripristino funziona automaticamente poiché hai già letto dal modello quando mostri ciascuna pagina.

+0

sembra un'ottima opzione – Aada

+2

C'è una libreria che ti permette di creare una procedura guidata molto semplice, controlla [WizarDroid] (http: // wizardroid.codepond.org). È ben documentato e in costante sviluppo. –

+0

@ CodePond.org Questo è esattamente ciò di cui avevo bisogno. Funziona alla grande e non ho avuto il tempo di imitare l'esempio. – theblang

1

Penso che 2 sia meglio. Metti ogni "pagina" in una vista e poi alterna solo la visualizzazione e la nasconde. Rende banale fare belle transizioni. Quale stato stai pensando di mantenere? L'unico che non funziona automaticamente sarebbe focalizzato e penso che probabilmente vorrai resettarlo ogni volta che cambi pagina. È anche banale riprenderti se pensi che sia il comportamento giusto per la tua app.

Con 1 è possibile riutilizzare quasi tutto il codice (basta definire la propria classe WizardBase), ma penso che le attività siano molto più lente da avviare (e richiedono più memoria) rispetto al passaggio da una visualizzazione all'altra.

6

Sono andato con il primo approccio come sembra più naturale. Un'altra app utilizza ViewFlipper per passare da una visualizzazione all'altra, ma è lontana da qualcosa come la procedura guidata.

+0

Questo è il modo in cui si suppone che Android funzioni. –

+0

@Isaac Waller Che cos'è? non stai usando ViewFlipper? –

+0

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

17

Ho sviluppato una libreria Android leggera, che si basa sul ViewPager di Android che può essere utilizzato per la creazione di attività simili a procedure guidate. Dateci un'occhiata: WizarDroid.

+4

Questo ha bisogno di più voti. Bella soluzione –

+0

Questa è una bella soluzione, ma non del tutto generale. La dipendenza da viewpager rende necessario avere almeno un frammento creato su entrambi i lati, il che potrebbe non essere conveniente se il contenuto del passaggio successivo non è ancora stato determinato. –

+0

non è in grado di capire come utilizzare Wizardroid che dipende dal supporto lib 19.x w/più recente supporto lib versioni – m02ph3u5