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 :

Faire que le click d une categorie sur un spinner display la sous categorie dans l autre spinner


Sujet :

Composants graphiques Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Avril 2016
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Faire que le click d une categorie sur un spinner display la sous categorie dans l autre spinner
    Bonjour
    je suis nouveau dans le développement android Je développe une application ou j ai un spinner avec 3 catégories et a chaque catégorie correspond sa sous catégorie.CATEGORIE:VÉHICULE(Accessoire,Pièces,Autre),Maison(Commerciale,A Vendre,A louer),Service(Cosmetique,Coiffure).
    Au clics du premier spinner avec Catégorie,le deuxième spinner doit afficher la sous catégorie correspondante.
    J obtiens une erreur a chaque fois qui arrette l application.
    Voici mes codes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     materialBetterSpinner.setAdapter(adapter);
     
            MaterialBetterSpinner materialBetterSpinner1 = (MaterialBetterSpinner)findViewById(R.id.spinner_categorie);
            ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,CATEGO);
     
            materialBetterSpinner1.setAdapter(adapter1);
     
             final MaterialBetterSpinner materialBetterSpinner2 = (MaterialBetterSpinner)findViewById(R.id.spinner_sous_categorie);
            final ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(MainActivity.this,R.array.vehicule,android.R.layout.simple_spinner_dropdown_item);
            final ArrayAdapter<CharSequence> adapter3 = ArrayAdapter.createFromResource(MainActivity.this,R.array.maison,android.R.layout.simple_spinner_dropdown_item);
            materialBetterSpinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
     
                    String value = materialBetterSpinner2.getItemSelectedListener().toString();
     
                    if (value.equals("Vehicule")){
                        materialBetterSpinner2.setAdapter(adapter2);
                    } else if (value.equals("Maison")){
                        materialBetterSpinner2.setAdapter(adapter3);
     
                    }
    La methode .getItemSelectedListener ne marche pas

    Quelqun peut t il m aider s il vous plait

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 63
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    Tu devrais mettre ton code à l'intérieur d'une balise code !

    Ton erreur vient effectivement de la méthode getItemSelectedListener qui te renvoie un Objet "OnItemSelectedListener",
    Je ne pense pas que c'est ce que tu souhaites...
    Utilise plutôt la méthode getSelectedItem()

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Avril 2016
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    J ai bien essaye de changer la methode mais cela apporte aucun changement

  4. #4
    Membre actif Avatar de Altak
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 170
    Points : 245
    Points
    245
    Par défaut
    Bonjour,

    Je vois que tu as mis:
    "String value = materialBetterSpinner2.getItemSelectedListener().toString();"

    Ce n'est pas sur le materialBetterSpinner1 que tu voudrais faire ca?
    Vue le code, ca ne risque pas de faire grand chose sur le deux...

    GLHF!

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Avril 2016
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Non en fait c est en choisissant sur le materialBetterSpinner1 une categorie que l on ouvrant materialBetterSpinner2 on devrait avoir la sous categorie correspondant a la categorie choisit dans materialBetterSpinner1.
    Comme en ouvrant le spinner1 a categoire VEHICULE, on devrait avoir accessoire,piece et autre montrant dans le spinner2,en choisissant maison dans spinner1 on devrai avoir a vendre, a louer.etc...
    Cordialement

  6. #6
    Membre actif Avatar de Altak
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 170
    Points : 245
    Points
    245
    Par défaut
    Bonjour,

    C'est ce que j'avais cru comprendre mais tu check la valeur du spinner 2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String value = materialBetterSpinner2.getItemSelectedListener().toString();
    A ce moment la, la valeur de "value" est égal a la selection du Spinner2 mais comme il n'a, à ce moment la, aucun adapter de setter, ca ne peut pas fonctionner.

    De plus, lorsque tu fais tes check :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (value.equals("Vehicule")){
                        materialBetterSpinner2.setAdapter(adapter2);
                    } else if (value.equals("Maison")){
                        materialBetterSpinner2.setAdapter(adapter3);
     
                    }
    Cela ne rentre dans aucune condition vue que Spinner2 n'aura jamais "Vehicule" ou "Maison" comme choix.

    Je me trompe peut être mais au vue du code montrer, c'est normal que ca ne fonctionne pas (il me semble en tout cas ^^ )

    GLHF

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 100
    Points : 91
    Points
    91
    Par défaut
    Bonjour,

    En regardant ta code, ça devrait fonctionné. Alors je me suis posé une question Ta collection(List) CATEGO contient des données Véhicule et Maison avec quelle case. Le contenu sont en majuscule ou en minuscule ou encore juste le début du mot véhicule ou maison est en majuscule.

    Si tu n'est pas sur de la case des mots de votre collection, vaut mieux utiliser la méthode equalsIgnoreCase au lieu de equals qui compare le texte avec exactitude de la case;equals fait une distinction entre un texte majuscule et minuscule. En plus l'action est effectuée sur le spinner 1 et non sur le spinner 2(sous catégorie)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     materialBetterSpinner1.setOnItemSelectedListener(
                    new AdapterView.OnItemSelectedListener() {
                        public void onItemSelected(
                                AdapterView<?> parent, View view, int position, long id) {
     
    			 String value = materialBetterSpinner1.getItemSelectedListener().toString();
     
                             if (value.equalsIgnoreCase("Vehicule")){
    		                    materialBetterSpinner2.setAdapter(adapter2);
    		        } else if (value.equalsIgnoreCase("Maison")){
    		                    materialBetterSpinner2.setAdapter(adapter3);		 
    		        }
     
                        }
     
                        public void onNothingSelected(AdapterView<?> parent) {
                            ///showToast("Spinner1: unselected");
                        }
                    });

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/03/2010, 13h13
  2. Que faut-il pour une applic sur PC sans Acc
    Par rlejeune dans le forum Modélisation
    Réponses: 5
    Dernier message: 05/10/2009, 15h03
  3. Comment faire un JOIN récursif d'une table sur elle-même?
    Par PierreCaron dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/04/2009, 03h28
  4. Faire un submit et ouvrir une popup sur une action
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/10/2007, 16h00
  5. Faire a un script executer une action sur un signal
    Par vodevil dans le forum Langage
    Réponses: 1
    Dernier message: 13/12/2005, 11h14

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