Aller au contenu

[Résolu] Problème de Spinner


jok

Recommended Posts

Bonjour,

Je suis en train d'établir un formulaire et je souhaiterais mettre en place une liste de noms dans un Spinner. Au chargement de l'Activity, il contient bien la liste récupérée depuis une table (base de données SQLite), mais aucun nom ne s'affiche dans ce Spinner quand il est fermé, que ce soit au chargement du formulaire ou après sélection d'un nom dans la liste. Vous savez de quoi ça peut venir ?

Même en essayant un android:prompt="@string/nom" dans le XML, je n'ai rien qui s'affiche... Avez-vous une idée de quoi ça peut venir ? Je peux mettre un morceau de code à disposition si ça vous aide à résoudre mon problème :

  <Spinner 
   android:id="@+id/spinner"
   android:prompt="@string/nom"
   android:layout_width="200px"
   android:layout_height="wrap_content"
   android:drawSelectorOnTop="true"
   android:layout_toRightOf="@+id/natureprestationTV"
   android:layout_below="@+id/heurefinBT" 
 />

base = new BaseSQLite(this);
       base.open();
	Cursor c = base.listeBeneficiaires();
       startManagingCursor(c);
       SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,  
       	android.R.layout.simple_spinner_item, c,  
       	new String[] {BaseSQLite.B_PRENOM, BaseSQLite.B_NOM}, new int[] {R.id.prenom, R.id.nom}); 
       adapter.setDropDownViewResource(R.layout.d_beneficiaire);
       sp.setAdapter(adapter);
       sp.setOnItemSelectedListener(new A_Spinner());
       base.close();

public class A_Spinner implements OnItemSelectedListener {

public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
   		Toast.makeText(parent.getContext(), "L'ID est " +
   		(pos+1), Toast.LENGTH_LONG).show(); // L'ID est bien sélectionné mais je n'arrive pas à retourner le résultat dans le Spinner quand il est fermé.
   }

   public void onNothingSelected(AdapterView<?> parent) {
     // Ne rien faire
   }
}

Merci d'avance pour votre aide ! :)

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse !

C'était pour vérifier s'il m'affichait bien les ID que je sélectionnais, mais même en enlevant ça ne change rien... J'ai déjà été voir la Doc et je suis effectivement tombé sur le Hello Spinner mais contrairement à un ArrayAdapter, je n'arrive pas à afficher avec mon CursorAdapter (vu que je récupère depuis une table). :/

Lien vers le commentaire
Partager sur d’autres sites

Maintenant que tu le dis, j'ai ce warning une fois un nom sélectionné :

03-23 13:46:46.473: WARN/InputManagerService(54): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44d7c750

Lien vers le commentaire
Partager sur d’autres sites

C'est rien ce warning c'est juste que ta fenêtre est déjà au premier plan.

C'est bizarre car ton code est identique à ce que l'on trouve dans cette page http://developer.android.com/guide/topics/ui/binding.html par exemple.

Je ne vois rien qui pourrais clocher. La seule chose que l'on ne voit pas c'est ton implémentation du Cursor vérifie si tu na pas un truc bizarre dedans.

Là j'ai plus d'idée.

Lien vers le commentaire
Partager sur d’autres sites

J'y ai pensé aussi, mais mon implémentation du curseur, après une longue vérification, fonctionne très bien (vu qu'elle me renvoie bien ma liste dans le Spinner), c'est juste qu'avant et après sélection dans cette fameuse liste, rien de sélectionné ne s'affiche. :(

C'est quand même gentil d'avoir essayé, merci !

Lien vers le commentaire
Partager sur d’autres sites

Vu que tu as défini ton propre layout (R.layout.d_beneficiaire) pour les éléments du spinner lorsqu'il est ouvert, il faut que tu fasses de même pour le cas spinner fermé, et que tu remplaces la référence au layout par défaut dans le contructeur de l'Adapter (android.R.layout.simple_spinner_item) par la référence à ton layout. Celui-ci devra contenir les mêmes TextView (nom, prenom) que ton autre layout

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...