bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


android_spinner

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
Ultima revisió Ambdós costats nova versio
android_spinner [2022/10/17 16:14]
enrique_mieza_sanchez [Connectant les callback dels Spinner]
android_spinner [2022/10/17 16:58]
enrique_mieza_sanchez [A partir de dades dinàmiques]
Línia 64: Línia 64:
 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
     R.array.nombres, android.R.layout.simple_spinner_item);     R.array.nombres, android.R.layout.simple_spinner_item);
-adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
 spinner.setAdapter(adapter); spinner.setAdapter(adapter);
 </file> </file>
Línia 78: Línia 77:
 ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(this, ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(this,
     android.R.layout.simple_spinner_item, nombres);     android.R.layout.simple_spinner_item, nombres);
-adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
 spinner.setAdapter(adapter); spinner.setAdapter(adapter);
 </file> </file>
Línia 87: Línia 85:
 Per poder respondre a les accions de l'usuari al canviar els valors dels ''Spinner'' necessitarem implementar les //callback// pertinents. L'objecte que sol fer la feina és un ''Listener''. Per poder respondre a les accions de l'usuari al canviar els valors dels ''Spinner'' necessitarem implementar les //callback// pertinents. L'objecte que sol fer la feina és un ''Listener''.
  
-Tindrem 2 estratègies bàsiques per a implementar les //callback// d'un ''Spinner'' (o de qualsevol ''View'' amb acció: +Tindrem 2 estratègies bàsiques per a implementar les //callback// d'un ''Spinner'' (o de qualsevol ''View'' amb acció. Convé conèixer les dues, encara que recomanem la segona. 
-  Crear un objecte tipus ''OnItemSelectedListener'' per a cada Spinner, similarment a com solem fer amb els ''OnClickListener'' dels ''Button'':<code java>+ 
 + 
 +==== Opció 1objecte OnItemSelectedListener ==== 
 +Crear un objecte tipus ''OnItemSelectedListener'' per a cada Spinner, similarment a com solem fer amb els ''OnClickListener'' dels ''Button'': 
 + 
 +<code java>
 Spinner spinner = new Spinner(this); Spinner spinner = new Spinner(this);
 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
Línia 103: Línia 106:
 }); });
 </code> </code>
-  - Heretar la interfície ''OnItemSelectedListener'' a la pròpia ''MainActivity'' i implementant les funcions necessàries com a mètodes d'aquesta, tal i com suggereix la [[https://developer.android.com/develop/ui/views/components/spinner#SelectListener|doc oficial del Spinner]].<code java>+ 
 +==== Opció 2: heretar OnItemSelechtedListener a la MainActivity ==== 
 +Podem heretar la interfície ''OnItemSelectedListener'' a la pròpia ''MainActivity'' i implementant les funcions necessàries com a mètodes d'aquesta, tal i com suggereix la [[https://developer.android.com/develop/ui/views/components/spinner#SelectListener|doc oficial del Spinner]]. 
 + 
 +<code java>
 public class SpinnerActivity extends Activity implements OnItemSelectedListener { public class SpinnerActivity extends Activity implements OnItemSelectedListener {
     ...     ...
Línia 128: Línia 135:
 Ens resultarà un codi més llegible si fem servir la opció 2, al menys en aquest cas. Ens resultarà un codi més llegible si fem servir la opció 2, al menys en aquest cas.
  
-Segueix la [[https://developer.android.com/develop/ui/views/components/spinner#SelectListener|doc oficial del Spinner]] on l'exemple segueix aquesta estratègia implementant les //callback//:+Segueix la [[https://developer.android.com/develop/ui/views/components/spinner#SelectListener|doc oficial del Spinner]] on l'exemple segueix aquesta estratègia implementant les //callback//. Tant en un cas com a l'altra cal implementar les dues funcions:
   * ''onItemSelected'': és on activarem la lògica del nostre joc.   * ''onItemSelected'': és on activarem la lògica del nostre joc.
   * ''onNothingSelected'': és obligatoria implementar-la, però segurament no hi posarem res de codi.   * ''onNothingSelected'': és obligatoria implementar-la, però segurament no hi posarem res de codi.
android_spinner.txt · Darrera modificació: 2022/10/17 17:03 per enrique_mieza_sanchez