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 Següent revisió Ambdós costats nova versio | ||
android_spinner [2022/10/17 15:09] enrique_mieza_sanchez [Android Spinner o Dropdown] |
android_spinner [2022/10/17 16:58] enrique_mieza_sanchez [A partir de dades d'un resource] |
||
---|---|---|---|
Línia 3: | Línia 3: | ||
Un //spinner// d' | Un //spinner// d' | ||
- | La programació en Android és, però, més complicada que en altres entorns degut a la gestió de la RAM en llistes molt llargues amb recursos costosos com les imatges, explicat a l' | + | La programació en Android és, però, més complicada que en altres entorns degut a la gestió de la RAM en llistes molt llargues amb recursos costosos com les imatges, explicat a l' |
{{ https:// | {{ https:// | ||
Línia 64: | Línia 64: | ||
ArrayAdapter< | ArrayAdapter< | ||
R.array.nombres, | R.array.nombres, | ||
- | adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); | ||
spinner.setAdapter(adapter); | spinner.setAdapter(adapter); | ||
</ | </ | ||
Línia 70: | Línia 69: | ||
\\ | \\ | ||
- | ==== A partir de dades pròpies | + | ==== A partir de dades dinàmiques |
- | Per crear un rang de dades del 0 al 5 com hem fet abans no cal definir el array. | + | Per crear un rang de dades del 0 al 5 com hem fet abans no cal definir el array a l' |
<file java> | <file java> | ||
Línia 82: | Línia 81: | ||
</ | </ | ||
+ | \\ | ||
+ | ===== Connectant les callback dels Spinner ===== | ||
+ | Per poder respondre a les accions de l' | ||
+ | |||
+ | Tindrem 2 estratègies bàsiques per a implementar les // | ||
+ | |||
+ | |||
+ | ==== Opció 1: objecte OnItemSelectedListener ==== | ||
+ | Crear un objecte tipus '' | ||
+ | |||
+ | <code java> | ||
+ | Spinner spinner = new Spinner(this); | ||
+ | spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { | ||
+ | @Override | ||
+ | public void onItemSelected(AdapterView<?> | ||
+ | // la posició del spinner és ' | ||
+ | String string = spinner.getSelectedItem().toString(); | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public void onNothingSelected(AdapterView<?> | ||
+ | |||
+ | } | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | ==== Opció 2: heretar OnItemSelechtedListener a la MainActivity ==== | ||
+ | Podem heretar la interfície '' | ||
+ | |||
+ | <code java> | ||
+ | public class SpinnerActivity extends Activity implements OnItemSelectedListener { | ||
+ | ... | ||
+ | |||
+ | protected void onCreate(Bundle savedInstanceState) { | ||
+ | ... | ||
+ | Spinner spinner = new Spinner(this); | ||
+ | spinner.setOnItemSelectedListener(this); | ||
+ | ... | ||
+ | } | ||
+ | |||
+ | public void onItemSelected(AdapterView<?> | ||
+ | int pos, long id) { | ||
+ | // An item was selected. You can retrieve the selected item using | ||
+ | // parent.getItemAtPosition(pos) | ||
+ | } | ||
+ | |||
+ | public void onNothingSelected(AdapterView<?> | ||
+ | // Another interface callback | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Ens resultarà un codi més llegible si fem servir la opció 2, al menys en aquest cas. | ||
+ | |||
+ | Segueix la [[https:// | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Exercicis ===== | ||
+ | <WRAP todo> | ||
+ | Crea una app amb 2 '' | ||
+ | * Un creat de forma estàtica amb els noms dels planetes, tal i com planteja la doc oficial de '' | ||
+ | * Un creat programàticament amb els números descrits anteriorment. | ||
+ | |||
+ | Implementa les // | ||
+ | </ | ||
+ | |||
+ | \\ | ||