CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: 9mm con ben 3 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 8 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 29 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

Creare dei dialoghi personalizzati

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    Creare dei dialoghi personalizzati

    Prima di iniziare è doveroso fare una breve introduzione su cos'è la classe Dialog (precisamente android.app.Dialog). La classe Dialog, come dice il nome stesso, permette di visualizzare dei dialoghi, ovvero quelle finestre che vediamo comparire quando ci viene chiesta una conferma. Quando viene visualizzato un dialogo l'Activity sottostante viene momentaneamente bloccata.

    Quando si hanno molti dialoghi da gestire il mio consiglio è sempre quello di creare una apposita classe (che io chiamo Dialoghi) e fare al suo interno un metodo mostra(int idDialogo) con delle variabili Intere statiche che passerete poi al metodo mostra. Un esempio pratico può chiarire le idee.



    In questo caso manca tutta la gestione vera e propria del dialogo, che effettueremo tra poco, ma sommariamente questa impostazione è molto comoda e organizzata poichè basta istanziare la classe Dialoghi passandogli il contesto e successivamente, tramite il metodo mostra, scegliere il dialogo da visualizzare facendo



    Ma vediamo ora come fare a creare il nostro dialogo personalizzato. Visto che ce l'abbiamo già sotto mano cominciamo dalla classe Dialoghi. Cosa dobbiamo aggiungere? La risposta è molto semplice: dobbiamo istanziare l'oggetto AlertDialog.Builder. Vediamo come fare.



    Consiglio di inializzarlo nel metodo mostra ma anche nel costruttore va bene. Ora è chiaro che per poter avere un dialogo personalizzato dobbiamo definire noi il layout che deve avere e quindi andiamo a crearlo. Andiamo in /res/layout/ e creiamo un file XML che chiamiamo layout_dialogo. Potete mettere al suo interno tutto quello che volete e personalizzarlo come volete. In questo caso, giusto per fare un esempio, mettiamo una EditText, una TextView ed un Button. Procediamo.



    Ho scelto e consiglio di usare il RelativeLayout perchè tramite gli attributi below, above, toRightOf ecc. permette di facilitare la gestione del posizionamento della varie Views. C'è ben poco da commentare. La TextView avrà una distanza dal margine superiore di 10dp e altrettanto dal margine sinistro. Il font scelto è il sans-serif-light, molto bello, elegante e minimale e le dimensioni del testo ammontano a 17sp. La EditText oltre al margine deve essere centrata orizzontalmente e deve stare sotto (below) la TextView. Infine, il Button occuperà tutto lo spazio disponibile in larghezza (fill_parent) e starà sotto la EditText. Il nostro layout XML è finito qui. Torniamo alla classe Dialoghi.

    Dobbiamo ora "infilare" il layout poc'anzi creato nel dialogo e per questo si usa la classe LayoutInflater che come dice il nome stesso consente di infilare i layout. Istanziamo l'oggetto sempre nel metodo mostra facendo

    Ultima modifica di Crotan; 18-05-14 alle 07:50

  2. Il seguente Utente ha ringraziato Crotan per il post:

    KlaasMad (21-05-14)

  3.  
  4. #2
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    In uno dei due case (scegliete voi se quello del DIALOGO1 o del DIALOGO2) inserite.



    Abbiamo usato una View per infilarci dentro il layout e tramite essa abbiamo ottenuto il riferimento alla TextView. Infine, abbiamo applicato il layout al dialogo tramite il metodo setView. Ovviamente se volete potete anche ottenere il riferimento al Button ed impostare ad esso il metodo onClickListener per decidere cosa deve fare quando viene premuto. Per fare ciò inserite



    Infine, alla fine del metodo mostra è assolutamente necessario inserire quanto segue per poter creare e visualizzare il dialogo.



    NOTA
    Nel file colors.xml (values/colors.xml) il colore esadecimale corrispondente al blu_holo è #ff0099cc.

    Fatto! Abbiamo finito. Eseguendo l'applicazione avremmo questo.


    Spoiler:

    Ultima modifica di Crotan; 18-05-14 alle 07:52

  5. #3
    Androidiano VIP L'avatar di KlaasMad


    Registrato dal
    Mar 2012
    Località
    /home/klaasmad
    Messaggi
    4,098
    Smartphone
    OPO - Asus T100/Teclast x98

    Ringraziamenti
    831
    Ringraziato 2,815 volte in 1,419 Posts

  6. Il seguente Utente ha ringraziato KlaasMad per il post:

    Crotan (21-05-14)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy