RecyclerView és l'objecte adequat per a visualitzar llargues llistes d'objectes en les darreres versions d'Android. Similarment a Android ListVieẉ però amb un funcionament una mica més sofisticat, la idea segueix sent reciclar les «targetes» de visualització de cada item per estalviar RAM. Seguint el paradigma MVC, necessitarà un objecte intermig Adapter que ens enllaça la part gràfica amb la part de model.
Referències:
View intenta seguir un paradigma Model - Vista - Controlador.ArrayList) connectat directament a la View (ja sigui ListView o RecyclerView).Activity) o en una classe derivada de la View.Adapter. Aquest és l'element que coneix la View i el nostre Model i que ha de saber com reciclar els ítems per a l'estalvi de RAM.
Intentarem seguir les indicacions de la doc oficial d'Android de RecyclerView, però sovint cal algun hack perquè funcioni del tot:
'Activity (per exemple activity_main.xml).TextView del main template per evitar confusions de IDs, o com a mínim modificar el seu ID amb un nom que no sigui el típic textView per quelcom més particularitzat.CustomAdapterActivity.onCreate() (l'exemple de la doc oficial és incomplert):String []dataset = { "hola q tal", "com va", "tercer element" }; customAdapter = new CustomAdapter(dataset); RecyclerView recyclerView = findViewById(R.id.recyclerView); RecyclerView.LayoutManager lm = new LinearLayoutManager(this); recyclerView.setLayoutManager(lm); recyclerView.setAdapter(customAdapter);
Si no veieu elements de la llista al RecyclerView, revisa:
LayoutManager al codi de l'Activity, sense aquest element no funciona el RecyclerView (l'exemple de la doc oficial no el té).RecyclerView no estigui massa ajustat al top del layout de la Activity. Posa un marge més gran perquè la StatusBar pot amagar els elements.textView.Un cop en funcionament, pots sofisticar la visualització:
item_layout.xml i afegint-hi elements com ImageView, etc.GridLayoutManager enlloc del LinearLayoutManager.dataset que podria ser un ArrayList o similar d'objectes amb diversos atributs.CustomLayout i canviant del String de l'exemple a l'objecte desitjat.
Implementa una aplicació de captació d'imatges com la descrita a Android Camera que s'enregistrin en l'espai d'emmagatzematge compartit de l'aplicació.
Visualitza les imatges enregistrades en una nova Activity que visualitzi a mode de «galeria d'imatges» pròpies de la nostra app.
El dataset pot ser una llista d'elements File que podem llistar de l'espai d'emmagatzematge compartit de la nostra aplicació.