Android: Intents, RecyclerView, Fragments i Room DB
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
catalán con un tamaño de 4,78 KB
Android: Components Essencials per al Desenvolupament
Intents: Són objectes de missatgeria que ens permeten sol·licitar una acció a un altre component de l'aplicació.
Intents Explícits vs. Implícits
- Intents Explícits: S'utilitzen quan coneixem el nom exacte de l'Activity o servei al qual volem sol·licitar una acció.
- Intents Implícits: S'utilitzen quan volem sol·licitar una acció general. El sistema Android s'encarrega de seleccionar el component adequat per satisfer la sol·licitud.
Components d'un Intent:
- Component Name: Nom del component de destinació.
- Action: L'acció que es desitja realitzar.
- Data: Les dades implicades en l'acció (normalment un URI).
- Category: Informació addicional sobre el tipus de component.
- Extras: Dades addicionals en format clau-valor.
- Flags: Instruccions per al sistema sobre com iniciar una Activity.
RecyclerView: Visualització Eficient de Llistats
La RecyclerView és un tipus de ViewGroup que ens permet mostrar llistats o quadrícules de manera eficient en Android.
Elements Necessaris per a RecyclerView:
- RecyclerView.Adapter: Tracta les dades i les mostra a la RecyclerView. Necessita un layout per als elements de la llista (.xml) i un
ViewHolder. - LayoutManager: Ajuda a posicionar els elements dins del llistat.
- ItemAnimator: Configura l'animació dels elements durant operacions com afegir o eliminar.
Tipus de LayoutManager:
- LinearLayoutManager: Mostra els elements en format vertical o horitzontal en una llista amb scroll.
- GridLayoutManager: Mostra els elements organitzats en una quadrícula.
Com Crear una RecyclerView:
- Crear una classe amb les variables que representaran cada objecte del llistat.
- A l'Activity, declarar un
ArrayListamb els objectes i l'Adapter creat. - Crear una nova classe per a l'
Adapter, incloent-hi elViewHolder. - A l'
onCreatedel MainActivity, inicialitzar la RecyclerView.
Per gestionar els clics en els elements de la llista i accedir a un detall, implementeu un onItemClickListener a l'Adapter.
Per guardar l'estat de la RecyclerView, utilitzeu els mètodes onSaveInstanceState i onRestoreInstanceState.
Fragments: Modularitat i Reutilització d'Interfícies
Els Fragments representen una part o un comportament d'una interfície d'usuari. Permeten combinar diversos fragments en una Activity per crear interfícies complexes i reutilitzables.
Un fragment és una secció modular d'una pantalla que té el seu propi cicle de vida, lògica i interfície, però sempre està associat a una Activity.
Són especialment útils en aplicacions que necessiten dividir la interfície en parts independents o reutilitzables, facilitant la gestió de diferents mides de pantalla i orientacions.
Room DB: Persistència de Dades Local
Room és una capa d'abstracció sobre SQLite que facilita la gestió de bases de dades locals en Android. Permet emmagatzemar dades de manera persistent i sincronitzar-les quan la connexió es restableix.
Components Clau de Room:
- Database: La base de dades principal que emmagatzema la persistència de dades.
- Entity: Representa una taula dins de la base de dades.
- DAO (Data Access Object): Conté els mètodes per accedir a la base de dades (funcions CRUD).
Altres Components Relacionats amb Room:
- Room Database: Punt d'accés i capa sobre SQLite per gestionar la base de dades. (SQLite és un motor de base de dades relacional de codi obert molt potent).
- Repository: Patró per centralitzar l'accés a les dades, ja siguin locals o remotes.
- ViewModel: Gestiona les dades necessàries per a la UI, conserva les dades durant canvis de configuració (com rotacions) i és independent de la vista. La vista (Activity/Fragment) crida al ViewModel per mostrar les dades.
- LiveData: Permet crear objectes observables. La funció
onChangeds'executa automàticament quan les dades canvien, evitant consultes manuals a la base de dades. - Controller: Proporciona independència de la font de dades (local, API REST, fitxers, etc.).