bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


android_recyclerview

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
android_recyclerview [2023/12/18 23:08]
enric_mieza_sanchez [Implementar una RecyclerView]
android_recyclerview [2025/12/31 17:48] (actual)
enric_mieza_sanchez [Exercici]
Línia 58: Línia 58:
   - Que hagis posat un ''LayoutManager'' al codi de l'''Activity'', sense aquest element no funciona el ''RecyclerView'' (l'exemple de la doc oficial no el té).   - Que hagis posat un ''LayoutManager'' al codi de l'''Activity'', sense aquest element no funciona el ''RecyclerView'' (l'exemple de la doc oficial no el té).
   - Que el ''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.   - Que el ''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.
 +  - Vigila que no tinguis elements gràfics dels diferents //layouts// amb un mateix ID, en particular el del ''textView''.
  
 Un cop en funcionament, pots sofisticar la visualització: Un cop en funcionament, pots sofisticar la visualització:
Línia 66: Línia 67:
     - El //template// del ''CustomLayout'' i canviant del ''String'' de l'exemple a l'objecte desitjat.     - El //template// del ''CustomLayout'' i canviant del ''String'' de l'exemple a l'objecte desitjat.
  
 +\\
 +
 +===== Exercici =====
 +<WRAP todo>
 +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ó. 
 +</WRAP>
 +
 +\\
 +
 +===== Implementar onClick (amb funcions lambda) =====
 +
 +La implementació amb **funcions lambda** és més sofisticada, i té l'avantatge de tenir el codi més curt.
 +
 +Per implementar un onClick cal modificar:
 +  * El ''CustomAdapter''
 +  * La instanciació del ''CustomAdapter'' a la ''Activity'' (amb la funció lambda)
 +
 +A l'''Adapter'' afegim un nou atribut ''onItemClick'' al constructor:
 +
 +<file kotlin CustomAdapter.kt>
 +class MyAdapter(
 +    private val dataList: List<String>,
 +    private val onItemClick: (Int) -> Unit
 +) : RecyclerView.Adapter<MyViewHolder>() {
 +    
 +    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
 +        holder.itemView.setOnClickListener {
 +            onItemClick(position)
 +        }
 +    }
 +}
 +</file>
 +
 +A la instanciació de l'''Adapter'' dins la ''Activity'' afegim la funció lambda que ens retorna la ''position'' del l'element clicat:
 +
 +<file kotlin MainActivity.kt>
 +val adapter = MyAdapter(dataList) { position ->
 +    // Manejar el clic aquí
 +    Toast.makeText(this, "Clic: $position", Toast.LENGTH_SHORT).show()
 +}
 +</file>
  
android_recyclerview.1702940906.txt.gz · Darrera modificació: 2023/12/18 23:08 per enric_mieza_sanchez