Gabin Posté(e) 6 mars 2011 Share Posté(e) 6 mars 2011 Bonjour, Alors j'ai remarqué que j'avais un problème dans la dernière version de mon application : MonPlanning - Univ'Orleans. Pour résumer, je permet à l'utilisateur d'enregistrer son planning favoris (via une BDD). Si l'utilisateur souhaite voir ça configuration alors qu'entre temps il est allé en voir une autre, l'appui sur un bouton lui permet de remettre ces configurations (affichées dans les spinners). Le problème c'est que j'arrive à afficher les items que je veux dans mes spinners avec setSelection(position) mais lorsque je clic sur le bouton pour aller voir le planning, il affiche le dernier consulté. Je vous met un peu de code pour illustrer mon propos. // J'instancie ma spinner Spinner sp_composante_asub = (Spinner)findViewById(R.id.sp_composante_asub); // Son ArrayAdapter ArrayAdapter<CharSequence> spCompAsubAdapter = ArrayAdapter.createFromResource(this, R.array.sta_composante_asub, android.R.layout.simple_spinner_item); spCompAsubAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_composante_asub.setAdapter(spCompAsubAdapter); sp_composante_asub.setOnItemSelectedListener(new spAsubListener()); public class spAsubListener implements OnItemSelectedListener { @Override public void onItemSelected (AdapterView<?> parent, View v, int pos, long row) { switch (pos) { case 0 : ID_filiereADE = 8932 ; break; case 1 : ID_filiereADE = 10402 ; break; case 2 : ID_filiereADE = 13314 ; break; case 3 : ID_filiereADE = 13315 ; break; case 4 : ID_filiereADE = 13317 ; break; case 5 : ID_filiereADE = 13316 ; break; case 6 : ID_filiereADE = 13318 ; break; case 7 : ID_filiereADE = 13319 ; break; case 8 : ID_filiereADE = 13320 ; break; case 9 : ID_filiereADE = 8556 ; break; case 10 : ID_filiereADE = 10586 ; break; } } @Override public void onNothingSelected(AdapterView<?> parent) { ID_filiereADE = 8932; } }; Le problème c'est qu'en fait lorsque je fais mon setSelection(pos), je ne récupère pas mon ID_filiereADE. Comment faire pour appeler le onItemSelectedListener ? En farfouillant dans la doc google, j'ai trouvé ça : public boolean performItemClick (View view, int position, long id)Since: API Level 1 Call the OnItemClickListener, if it is defined. Parameters view The view within the AdapterView that was clicked. position The position of the view in the adapter. id The row id of the item that was clicked. Returns * True if there was an assigned OnItemClickListener that was called, false otherwise is returned. Mais je ne sais pas si ça peut m'aider et comment? car j'ai essayé de faire ça : sp_composante_asub.performItemClick(sp_composante_asub,0,0) Mais je ne vois pas ce que ça fait :/ J'ai besoin d'aide !! Merci à vous ;) Si vous souhaitez voir le problème en direct, malheureusement vous pouvez trouver mon application bugée sur le market : MonPlanning - Univ'Orleans. Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 7 mars 2011 Share Posté(e) 7 mars 2011 Le problème vient du fait que le setSelection ne déclenche pas le listener, et que tu te bases sur le listener du spinner pour récupérer la valeur correspondant à la ligne sélectionnée. Une autre façon de faire serait de ne récupérer cette valeur que lorsque tu en as réellement besoin, c'est à dire lorsque tu cliques sur le bouton Aller voir le planning. Tu n'as en fait pas besoin de listener sur le spinner Lien vers le commentaire Partager sur d’autres sites More sharing options...
Gabin Posté(e) 7 mars 2011 Auteur Share Posté(e) 7 mars 2011 OMG mais pourquoi n'y ais-je point pensé avant.... Bon, je pense que je vais virer de toute façon ma BDD pour garder seulement mes Preferences. Je te tient au courant de toute façon ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.