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 :

changer l'affichage des composants d'un formulaire selon Item de Spinner


Sujet :

Composants graphiques Android

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Par défaut changer l'affichage des composants d'un formulaire selon Item de Spinner
    Bonsoir,
    J'ai réalisé une formulaire permettre l'ajout des produits dans une Base de Données.
    Les produit sont catégorisé par des familles(par exemple la famille1 contient produit1a, produit1b, famille2 contient produit2a, produit2b..)

    J'ai ajouté un Spinner pour sélectionner la famille a affiché:


    Je souhaite changer l'affichage des produits, selon item de Spinner sélectionné.
    Je cherche une idée peut m'aider a réaliser ce but????
    J'ai pensé a utilisé un AbsoluteLayout, et placer les composant de la famille1 et famille2 dans la même position, ensuite contrôler l'affichage avec Set Visible mais je n'ai pas réussi .

    merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Par défaut
    Bonsoir,

    J'ai réalisé un TableLayout pour chaque famille des produits, et je les mets en Invisible.
    comme ça:
    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
     
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:stretchColumns="1"
        android:id="@+id/TableFamille1"
        android:visibility="invisible">
     
    </TableLayout>
     
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:stretchColumns="1"
        android:id="@+id/TableFamille2"
        android:visibility="invisible">
     
    </TableLayout>
    ....
    Maintenant je souhaite quand je selectionne l'Item2 de Spinner(famille2), j'affiche le TableLayout2(TableFamille2)
    Mais je ne sais pas comment récupérer l'item sélectionner de Spinner??
    J'ai fais une Truc comme ça
    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
     
    final TableLayout tab2= (TableLayout) findViewById(R.id.TableFamille2);
    s.setOnItemSelectedListener(new OnItemSelectedListener()
     {
         public void onItemSelected(AdapterView<?> parent, 
         View view, int position, long id) 
         {
        	int index = s.getSelectedItemPosition();
        	 if (index==2){  
        		 tab2.setVisibility(View.VISIBLE);
        		 // ed1.setvisible(true);
        	}
     
         }
     
         public void onNothingSelected(AdapterView<?> arg0) {}
     });
    je pense pas que c'est correcte .
    Merci

  3. #3
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 264
    Par défaut
    Moi personnellement, je ferais que la liste des articles soit une ListView.
    Je ferais une layout pour la row, un BaseAdapter custom.

    Et selon le choix dans le spinner j'actualiserai la ListView.

    Pour savoir quel item est sélectionné dans le Spinner on te donne int position.

    Comment tu remplit ton Spinner ?
    C'est stocké dans la base de données et tu utilises un Cursor ?
    Ou bien t’utilise une ArrayList ?

    Et la même questions pour les articles.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Par défaut
    Merci pour ta réponse
    Citation Envoyé par thierrybenji Voir le message
    Pour savoir quel item est sélectionné dans le Spinner on te donne int position.
    voici mon code maintenant:
    Code XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/table1"
        android:visibility="invisible" >
    et Mon code JAVA:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     public void onItemSelected(AdapterView<?> parent, 
         View view, int pos, long id) 
         {
        	//int index = s.getSelectedItemPosition();
        	 if (pos==2){  
        		 tab1.setVisibility(View.VISIBLE);
        		 // ed1.setvisible(true);
        	}
        	 else{
        		 tab1.setVisibility(View.GONE);
        	 }
         }
    Mais, quand je sélectionne le deuxième Item de Spinner, rien ne se passe, le tableau est toujours INVISIBLE ?


    Comment tu remplit ton Spinner ?
    C'est stocké dans la base de données et tu utilises un Cursor ?
    Ou bien t’utilise une ArrayList ?
    Et la même questions pour les articles.
    J'utilise Un fichier arrays.xml(res/values/) pour remplir le Spinner.
    Et pour les articles sont Des TextView pour le moment.

  5. #5
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 264
    Par défaut
    Est-ce que tu es sûre d'entrer dans le if ?
    Il faut faire un system.out ou un Log.v pour le test.

    Ensuite peut être que tab1 n'est pas correct, il faut peut être essayer de récupérer la view qui a l'id R.id.table1 en passant par parent ou view, enfin je sais pas...

    Mais déjà vérifie si t'entre bien dans le if.

    Est-ce que ton logcat t'indique un problème ?

Discussions similaires

  1. C# - Affichage des données dans un formulaire
    Par paradeofphp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 25/07/2006, 19h23
  2. affichage des enreg. dans sous-formulaire
    Par OBIWAN64 dans le forum Access
    Réponses: 5
    Dernier message: 27/04/2006, 08h10
  3. [Kylix] Affichage des composants
    Par Tux74 dans le forum EDI
    Réponses: 5
    Dernier message: 20/02/2006, 10h13
  4. [Swing][ListCellRenderer]Pas d'affichage des composants
    Par Cyberwan dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 08/02/2006, 00h22
  5. gestion de l'affichage des composants
    Par Foub dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 25/08/2005, 11h37

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