IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Usage d'un Spinner


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Par défaut Usage d'un Spinner
    bonjour,
    j'ai une table simple ( code, libellé) peut t'on avec le spinner afficher la colonne libéllé et recupérer la valeur code.

    pour l'instant je n'arrive qu'a charger une colonne et recuperer la valeur de cette colonne

    chargement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     JSONArray Tab_Condi =json.getJSONArray("Condi") ;
    List<String> listCondi =  new ArrayList<String>();
       for(int i = 0; i < Tab_Condi.length(); i++){
    	JSONObject c = Tab_Condi.getJSONObject(i);
    	listCondi.add(c.getString("Condi_libelle"));
    	}
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_spinner_item,listCondi);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    Sp_Art_Condi.setAdapter(dataAdapter);
    récupération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String SpinnerChoice = Sp_Art_Condi.getItemAtPosition(i).toString(); 
    merci

  2. #2
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Citation Envoyé par pascal B Voir le message
    bonjour,
    j'ai une table simple ( code, libellé) peut t'on avec le spinner afficher la colonne libéllé et recupérer la valeur code.

    pour l'instant je n'arrive qu'a charger une colonne et recuperer la valeur de cette colonne :
    Bonjour,
    Soit un peu plus clair que ça!

    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Par défaut
    Nom : Sans titre.jpg
Affichages : 203
Taille : 18,2 Ko
    j'ai donc une table simple "Conditionnement" avec un code et un libellé, je veux afficher dans le spinner la valeur du libellé, et récupérer la valeur du code.



    dans mon exemple dans ma table
    Conditionnement
    CODE LIBELLE
    SAC Sac(s)

    l'utilisateur Choisi le libelle "Sac(s) ", je veux récuperer son code "SAC".

  4. #4
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Je vois.
    En lisant ton code, j'ai l'impression que ton objet json ne te renvoie pas la paire code/libellé. L'ArrayList qui alimente l'adaptateur du spinner n'est reçoit qu'une seule rubrique (Condi_libelle) ce qui rend les choses impossibles au finish.
    Astuce, soit fait en sorte que ton json te renvoie un tableau à deux dimensions (code/libellé). Soit à la place de récupérer la rubrique code, récupère plutôt le libellé et quand un libellé sera sélectionné dans le spinner, envoie une requête pour recevoir en retour son code.

    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Pour être clair, ne stocke pas des "String" (qui ne sont que des labels), mais des objets:

    Disons que tes objets soient du type "MyObject"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    JSONArray Tab_Condi =json.getJSONArray("Condi") ;
    List<MyObject> listCondi =  new ArrayList<MyObject>();
    for(int i = 0; i < Tab_Condi.length(); i++) {
        JSONObject c = Tab_Condi.getJSONObject(i);
        MyObject o = new MyObject();
        o.fromJSONObject(c); // <= a modifier pour remplir MyObject depuis un JSONObject
        listCondi.add(o);
    	}
    ArrayAdapter<MyObject> dataAdapter = new ArrayAdapter<MyObject>(getBaseContext(),android.R.layout.simple_spinner_item,listCondi);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    Sp_Art_Condi.setAdapter(dataAdapter);
    Ensuite quand tu récupère l'élément selectionné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyObject spinnerChoice = (MyObject)  Sp_Art_Condi.getItemAtPosition(i);  // pas besoin du "toString()" même dans ton code initial
    Ensuite libre a toi de récupérer les données de MyObject que tu veux.

    Libre aussi à MyObject d'implémenter "toString()" pour renvoyer le libellé, et ainsi ne pas modifier l'adapter du tout.


    Attention aux noms des variables en Java: ils doivent commencer par une majuscule et ne pas contenir le caractère "_" ....
    Ainsi, "Sp_Art_Condi" devrait s'appeler "spArtCondi" (ou plutot: spinnerArtCondition, l'auto-completion de nos IDE permet d'avoir des noms à rallonge sans problème).
    Seuls les types (Classes, Interfaces, Enums) commencent par une majuscule.
    Et si je relis ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sp_Art_Condi.setAdapter(dataAdapter);
    veut dire pour moi: appeler la fonction statique "setAdapter" de la classe Sp_Art_Condi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel usage faites vous de Python (2004 - 2008) ?
    Par Guigui_ dans le forum Général Python
    Réponses: 130
    Dernier message: 03/12/2008, 23h59
  2. [POI] Usage à partir d'une Servlet
    Par fredmorvant29 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 19/07/2004, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo