In questo tutorial spiegherò come è possibile creare un semplice wizard da mostrare all'utente al primo avvio dell'applicazione. Per fare ciò utilizzerò un ViewPager. Per ulteriori informazioni circa questo oggetto potete consultare la documentazione ufficiale: View Pager | Android Developers.
Come prima cosa creiamo i vari files xml necessari per il corretto funzionamento dell'applicazione. Rechiamoci dunque in /res/layout/ ed apriamo l'activity_main e inseriamo quanto segue.
Da notare il "com.example.tutorialapp.ViewPagerNoSwipe". Spiegherò tra poco a cosa serve. Andiamo in /src/ e creiamo una classe chiamata ViewPagerNoSwipe ed inseriamo al suo interno il seguente codice.
Tramite questa classe disabilitiamo la possibilità di fare lo swipe tra le varie schermate del ViewPager. Abbiamo così svelato il mistero del "com.example.tutorialapp.ViewPagerNoSwipe".
Creiamo ora i vari files xml per ogni schermata (fragment) del Wizard. In questo esempio utilizzerò tre pagine, quindi, tre layout differenti.
Pagina1
Pagina2
Pagina3
Essendo il codice di facile comprensione non mi soffermo ulteriormente su descrizioni dello stesso. Proseguiamo oltre passando ora alla parte Java. Andiamo in /src/ ed apriamo la classe MainActivity inserendo quanto segue.
Creiamo ora l'adapter per il ViewPager.
La variabile "numeroPagine", come facilmente intuibile, indica il numero di pagine totali del ViewPager. Con il metodo getCount ritorniamo quel valore.
Siamo quasi giunti alla fine, creiamo per ogni file xml la corrispettiva classe estendendo Fragment.
Per questioni di spazio non posto tutte le classi, che potete comunque consultare nello zip dei sorgenti in allegato, l'unica nota che mi sento di fare è la seguente: quando arrivate all'ultimo Fragment, ossia l'ultima pagina del ViewPager, dovreste utilizzare le SharedPreferences per far si che il Wizard non sia mostrato sempre ad ogni avvio dell'applicazione. Per fare questo utilizzeremo una boolean.
Successivamente, nel metodo onClickListener del Button
In questo modo abbiamo salvato le preferenze, ma ancora non è finita. Nella classe HomePage dobbiamo controllare se effettivamente la variabile booleana ha un valore di true o false. Quindi, in HomePage inseriamo
Sorgenti caricati su Dropbox: LINK
Come utilizzare il metodo getActionBar() su API inferiori alle 11?
Per poter usare questo metodo su Gingerbread è necessario inserire nel proprio progetto la libreria di support v7 ed estendere ActionBarActivity, successivamente sostituire getActionBar() con getSupportActionBar().Maggiori informazioni su come importare la libreria nel vostro progetto sono disponibili qui: Support Library Setup | Android Developers.
Il risultato finale dovrebbe essere simile a questo
http://i42.tinypic.com/mk90zp.png http://i43.tinypic.com/2jg4im0.png http://i40.tinypic.com/w7ykio.png
Per ulteriori chiarimenti potete scrivere in questa discussione.