Quadres de Diàleg
De FFAWiki
La revisió el 15:35, 15 feb 2022 per Mayola (discussió | contribucions)
- Hi han diferents maneres d'implementar un quadre de diàleg, en aquest exemple es mostra com fer-ho a partir d'un fragment.
- La manera és crear una classe que s'ampliï DialogFragment per obtenir els seus mètodes.
- clic dret → New → Java Class
- Li poses el nom que vulguis, en el meu cas NouDialeg i un cop creat l'amplies de DialogFragment.
public class NouDialeg extends DialogFragment
- Per poder instanciar el diàleg hem de crear el mètode onCreateDialog (s'autocompleta sol i el sobreescriu).
- En la web trobareu la documentació per si voleu copar el codi.
- Importem les llibreries necessàries.
-
- builder.setMessage(), s'utilitza per editar el text que es pot mostrar com a missatge en el diàleg, nosaltres en aquest exemple no el fem servir i el substituïm per builder.setTitle("Títol de prova") posant així un títol al diàleg.
- builder.setPositiveButton("String amb el text que es mostrarà al botó de confirmar", Listener que espera que el botó sigui premut).
- Aquí posarem totes les accions que vols que faci si es dona a confirmar, una d'elles ha de ser dialog.dismiss(); per tal de tancar aquest diàleg un cop donat el boto.
- És exactament el mateix que en el punt 2 però amb el botó de cancel·lar.
- Aquí es posen les accions en cas que es premi el botó de cancel·lar i, igual que en el pas 3 una d'elles ha de ser dialog.dismiss(); per tal de tancar aquest diàleg un cop donat el boto.
- Hi han diferents maneres de fer anar un Diàleg com creant un mètode estàtic en aquesta classe que retorni l'objecte, però el que proposa l'exemple és crear i cridar aquest diàleg des de l'activity que es vulgui.
- Aquests són els passos mínims perquè funcioni, però fent-ho així la personalització és mínima, així que crearem una vista perquè la carregui el fragment.
- Crearem aquesta vista res → layout→ new→ Layout Recource File
- Posem les línies de codi necessàries perquè el diàleg carregui la vista en el fragment. (també estan a la documentació anteriorment esmentada per si les voleu copiar)
-
- Posem com a paràmetres del mètode inflate el layout que volem mostrar.