Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
android_listview [2022/10/10 10:06] enrique_mieza_sanchez |
android_listview [2024/10/29 19:06] (actual) enric_mieza_sanchez |
||
---|---|---|---|
Línia 6: | Línia 6: | ||
* '' | * '' | ||
* Es manté per //backward compatibility// | * Es manté per //backward compatibility// | ||
- | * Substitut | + | * //Widget// recomanat |
Referències: | Referències: | ||
- | * Article [[Android]] | + | * Article [[Android]] |
+ | * [[Android RecyclerView]] en aquesta wiki. | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
- | {{tag> #Dam #DamMp08 #DamMp08Uf1 # | + | {{tag> #Dam #DamMp08 #DamMp08Uf1 # |
==== Perquè és complicada una ListView? ==== | ==== Perquè és complicada una ListView? ==== | ||
Línia 50: | Línia 51: | ||
* No creem una classe derivada de '' | * No creem una classe derivada de '' | ||
- | ==== Codi taula de rècords ==== | + | **Segueix abaix per veure el codi** |
- | <sxh java> | + | |
+ | ==== Connexió (simplificada) Model - Adapter - View ==== | ||
+ | |||
+ | <code java> | ||
+ | public class MainActivity extends AppCompatActivity { | ||
+ | ArrayList< | ||
+ | ArrayAdapter< | ||
+ | |||
+ | @Override | ||
+ | protected void onCreate(Bundle savedInstanceState) { | ||
+ | // Creem llista de records, etc... | ||
+ | |||
+ | // Inicialitzem l' | ||
+ | adapter = new ArrayAdapter< | ||
+ | { | ||
+ | @Override | ||
+ | public View getView(int pos, View convertView, | ||
+ | { | ||
+ | // " | ||
+ | convertView = getLayoutInflater().inflate(R.layout.list_item, | ||
+ | // transferim dades del Model als widgets per a l' | ||
+ | ((TextView) convertView.findViewById(R.id.nom)).setText(getItem(pos).nom); | ||
+ | } | ||
+ | |||
+ | }; | ||
+ | |||
+ | // Connectem Adapter amb la View | ||
+ | ListView lv = (ListView) findViewById(R.id.recordsView); | ||
+ | lv.setAdapter(adapter); | ||
+ | |||
+ | // Creem la resta d' | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Codi complert | ||
+ | <file java MainActivity.java> | ||
package com.example.listilla; | package com.example.listilla; | ||
Línia 121: | Línia 160: | ||
@Override | @Override | ||
public void onClick(View v) { | public void onClick(View v) { | ||
- | for (int i=0;i<500;i++) { | + | for (int i=0;i<3;i++) { |
records.add(new Record(100, " | records.add(new Record(100, " | ||
} | } | ||
Línia 131: | Línia 170: | ||
} | } | ||
- | </sxh> | + | </file> |
===== Exercicis ===== | ===== Exercicis ===== | ||
- | === Exercici 1 === | + | ==== Exercici 1 ==== |
<WRAP todo> | <WRAP todo> | ||
Implementa el codi d' | Implementa el codi d' | ||
Línia 146: | Línia 185: | ||
* Transforma el seu layout per defecte a LinearLayout. | * Transforma el seu layout per defecte a LinearLayout. | ||
* Afegiex 2 '' | * Afegiex 2 '' | ||
- | * Afegeix un botó amb ID = '' | + | * Afegeix un botó al //layout// '' |
</ | </ | ||
- | === Exercici 2 === | + | ==== Exercici 2 ==== |
<WRAP todo> | <WRAP todo> | ||
- | Randomitza la generació d' | + | Randomitza la generació d' |
</ | </ | ||
- | === Exercici 3 === | + | ==== Exercici 3 ==== |
<WRAP todo> | <WRAP todo> | ||
Afegeix una imatge als elements de la llista (imatge fixa). Per fer-ho hauràs de: | Afegeix una imatge als elements de la llista (imatge fixa). Per fer-ho hauràs de: | ||
- | * Afegir | + | * Ves a la view de projecte de l' |
- | * Modificar el '' | + | * Importar una imatge |
+ | * Modificar el '' | ||
+ | * Modifica el //layout// del '' | ||
+ | * Pista: pots combinar diversos // | ||
+ | * Afegeix diverses imatges als // | ||
+ | |||
+ | {{ android: | ||
</ | </ | ||
- | === Exercici 4 === | + | ==== Exercici 4 ==== |
<WRAP todo> | <WRAP todo> | ||
Afegeix un botó que ordeni la llista del model, i que refresqui la '' | Afegeix un botó que ordeni la llista del model, i que refresqui la '' |