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

Android Discussion :

Problème de création d'un tableau dynamique


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut Problème de création d'un tableau dynamique
    Bonjour,

    le but de mon bout de programme ci-dessous permet de créer une seule ligne sous le format d'un tableau, par la suite viendra se rajouter plusieurs lignes.

    Problème:
    Mais je ne vois pas où j'ai pu me tromper dans le code.
    Lors du test du code aucune erreur dans le logcat mais aucun affichage
    j'ai juste l'image de fond de mon linearlayout.

    Pour info --> Je me trouve dans un fragment d'où l'utilisation de getActivity()


    Fichier xml
    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
    23
    24
    25
    26
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" 
        android:orientation="vertical"
        android:background="@drawable/fond"
        android:id="@+id/LayoutBelotte">
     
        <Space
             android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"/>
        <Button
            android:id="@+id/btnInfoPartie"
            android:onClick="commncerPartie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"/>
        <Space
             android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"/>
     
    </LinearLayout>

    Le code mis en commentaire s'affiche bien. (c'est un exemple)
    Fichier Java
    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
    23
    24
    25
    26
    27
    28
    29
    30
     
                    LinearBelotte1=(LinearLayout)v.findViewById(id.LayoutBelotte); // situe dans la methode onCreateView(....)
                    LinearBelotte1.removeAllViewsInLayout();
    		LinearBelotte1.setOrientation(LinearLayout.VERTICAL);
     
    		/*
    		LinearLayout.LayoutParams TEST = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		TextView test = new TextView(getActivity());
    		test.setText("S'affiche bien");
    		LinearBelotte1.addView(test,TEST);
    		*/
     
    		LinearLayout.LayoutParams TEST = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		LinearLayout.LayoutParams TEST1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. WRAP_CONTENT) ;
    		LinearLayout.LayoutParams TEST2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		TEST2.setMargins(2, 2, 2, 2);
     
    	    tabDefautCapteur1= new TableLayout(getActivity());
    	    tabDonnees1 = new TableRow(getActivity());
    	    tabDonnees1.setLayoutParams(TEST1);
     
    	    tabDonnees1.addView(generateTextView("Heures", TEST2,0));
    	    tabDonnees1.addView(generateTextView("Capteur", TEST2,0));
    	    tabDonnees1.addView(generateTextView("N°", TEST2,0));
    	    tabDonnees1.addView(generateTextView("Donnees", TEST2,0));
    	    tabDonnees1.addView(generateTextView("Rafraichissement", TEST2,0));
     
    	    // On attribut a la ligne du tableau les différentes cases crées
    	    tabDefautCapteur1.addView(tabDonnees1,TEST2);
    	    LinearBelotte1.addView(tabDefautCapteur1,TEST);
    Merci a tous ceux qui pourront m'aider

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Sans trop regarder, la racine de ton layout est déclaré verticalement. Or le premier élément "Space" a les paramètres suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Space
             android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"/>
    D'une part les trois informations sont incohérentes entre elles (weight surcharge height dans ce cas).
    D'autre part, tu utilises mal la répartition des poids :
    Les éléments Space ont un poids de 1, et l'élément central a un poids de 0. Il aura donc une taille nulle.

    Ce layout suivant devrait suffire non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent">
     
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"/>
     
    </LinearLayout>

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Pour te répondre Simon MARQUIS
    C'était pas vraiment la le problème
    mais j'ai pris compte de ta remarque et j'ai modifié mon fichier xml
    de la manière suivante :

    J'ai supprimé les Space et j'ai mis android:gravity="center" dans mon linearlayout

    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
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" 
        android:orientation="vertical"
        android:background="@drawable/fond"
        android:id="@+id/LayoutBelotte"
        android:gravity="center">
     
     
        <Button
            android:id="@+id/btnInfoPartie"
            android:onClick="commncerPartie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
     
     
    </LinearLayout>
    J'avais mis les space afin de placer mon bouton au centre de l’écran
    car le android:layout_gravity="center" que j'avais placé dans le bouton ne marchait pas
    il y a juste android:layout_gravity="center_horizontal" et "center_vertical" qui fonctionne.

    Problème :
    Mon problème reste toujours le même car comme on peut le constater dans le code java je supprime tout les éléments situe dans mon linearlayout avant de construire mon tableau.

    A l’heur actuel:
    Tout les éléments sont bien supprimés et je me retrouve avec mon image de fond (inséré par mon linearlayout). Aucun autre élément apparent.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Ah, au temps pour moi, je n'avais pas lu ta partie "code".
    Pour autant, je vais certainement répondre encore à côté : mais pourquoi tu n'utilises pas un fichier xml ? Ton tableau doit être dynamique ?
    Car d'après ce que je vois, tu ajoutes 5 lignes au tableau (donc rien de dynamique)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Pour la simple raison que je viens changer l'affichage en fonction des choix de l'utilisateur

    Dans un premier temps.

    il arrive sur un des fragment

    1er Vue:
    - il peut cliquer sur un bouton qui lui demande si il veut accéder au informations suivante.

    2 Vue:
    - Si il vient cliquer sur ce bouton je supprime le bouton et je construit en dynamique plusieurs edittext ou il peut rentrer son nom, prénom etc.

    3 Vue:
    - Si il valide alors je viens supprime tout les edittext etc et je construit en dynamique un tableau qui contiendra les données rentrer au préalable.


    Voila j’espère que tu comprend mieux ce que je veux faire.
    Je fais cela en gardant toujours le même fichier xml.

    Je n'ai pas essayé d'autre méthode comme:
    - Avoir plusieurs fichier xml que j'appelle en fonction des actions réalisé par l'utilisateur lors des appuis sur les boutons.

  6. #6
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    C'est pourtant la bonne....

    3 Fragments... chaque fragment remplaçant le précédent....
    ou...
    3 Activités...

    La différence entre les deux se situant dans la manière dont l'utilisateur voit l'activité... Arrive-t-il systématiquement sur la première vue en démarrant l'application ? etc...
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Je ne change pas de fragment, tout ce fait sur le même mais si je crée plusieurs fragments alors chaque fragment individuellement pourra être sur une vue différentes

    Exemple 3 fragments crée.

    1er fragment:
    -> l'utilisateur ne souhaite pas l'utilise donc il est sur la 1er Vue

    2eme fragment:
    -> l'utilisateur a fini de rentrer ses données personnelle il clique sur le bouton pour afficher le tableau donc il est sur la vue 3

    3eme fragment:
    -> l'utilisateur vient de cliquer sur le bouton de la 1er vue il arrive sur la vue 2 et commence a remplir ses données personnelle


    Donc chaque fragment a un fichier XML propre que je nettoie et reconstruit par dessus afin de crée la vue souhaité

    J’espère avoir été plus précis dans mon explication.

  8. #8
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Oui mais ca ne sert à rien de nettoyer justement... le FragmentManager s'occupe de tout
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Comment ça --> FragmentManager s'occupe de tout ?

    Il y a une autre manière de procédé pour pouvoir effacer les widgets crées dynamiquement ?

    Sinon Mon problème reste le même,
    je n'arrive pas a créer mon tableau en dynamique après avoir effacés les widgets qui me permettent de récupérer les informations rentrées par l'utilisateur.
    Aucune présence des widgets du tableau dynamique.

    Je peux mettre les fichiers XML et JAVA si cela peut aider.

  10. #10
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Bon,si on résume... ton activité a 3 états:
    * 1 état "non-initialisé"
    * 1 état "entrée données utilisateur"
    * 1 état "données affichées"

    Pour passer d'un état à un autre il "suffit" (dans l'activité) de faire un code dans le genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Fragment fragment = new XXXXXXX(); // un des 3 fragments...
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.replace(R.id.container, fragment ); // le layout de l'activité contient un "FrameLayout" qui contiendra les fragments. Chaque fragment a son propre layout.
    ft.commit();
    Et le tour est joué, toutes les vues du fragment précédent sont remplacées par le celles du nouveau fragment.

    Après pour le tableau on va voir... quelque chose me dit que tu essayes de faire une ListView à l'aide de layouts statiques, mais bon il faut vraiment voir le code / xml
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Alors pour te répondre nicroman, j'ai du mal a comprendre t'es explication.

    Je vais essayé de résume au maximum comment fonctionne mon application et tu me dira si c'est ce que tu avais compris.


    Dans un premier temps l'utilisateur arrive sur une activité qui lui propose combien de fragment il souhaite crée.

    --> Il répond par exemple 3. et clique sur un bouton de validation.

    Je crée donc une nouvelle activité qui contient 3 fragments.
    Chaque fragment comporte 3 états:
    * 1 état "non-initialisé"
    * 1 état "entrée données utilisateur"
    * 1 état "données affichées"

    Voila en image:
    http://www.hostingpics.net/viewer.ph...pplication.png

    L'utilisateur peut très bien utiliser le 1er fragment et ne pas toucher aux autres.
    le 1er fragment changera d'état en fonction des cliques effectué par l'utilisateur.
    Le fragment 2 et 3 resterons a l’état 1 car l'utilisateur n'y a pas toucher mais il pourront être vu par l'utilisateur si celui-ci vient faire un déplacement de l’écran de droite a gauche.

    Voila j’espère avoir été plus claire et si tu avais déjà compris ce que je viens d’expliqué alors je comprend pas ce que tu m'a expliqué. Car j'ai l'impression que je dois:

    - crée un fragment qui est a l'état "non-initialisé" lorsque l'utilisateur clique dessus supprimé ce fragment

    -puis en recrée un qui contient l'état --> "entrée données utilisateur"
    ---> si l'utilisateur clique sur le bouton alors venir le supprimer

    - puis en recrée un qui contient l'état --> "données affichées"

    ai-je bien compris le raisonnement?

  12. #12
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Alors je pense qu'on ne se comprend pas à cause de "Fragment"....

    Pour toi un "fragment" correspond à des données.
    Pour moi un "fragment" correspond à la classe android.app.Fragment, et dans le dessin, j'en verrais 9 de ces fragments là (enfin.... 9 possibles).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Non je suis d'accord avec toi
    fragment est bien une classe pour moi

    Dans le dessin j'aurais par exemple 3 fragments de crée.
    Et comme tu peux le voir sur le dessin j'aimerais passer a un autre état si l'utilisateur clique sur le bouton.

    Mais je reste sur 3 fragment a la base c'est juste la vue ou disons le fichier xml que je reconstruit sur chacun d'eux.

    Voila une image peut être plus représentative de ceux que j'ai réalisé.
    http://www.hostingpics.net/viewer.ph...90143Appli.png


    L’état 1 et 2 et déjà fonctionnelle quand a la partie 3 il faut juste que j'affiche mon tableau.

    j'arrive a naviguer sur mes 3 états sauf que pour le dernier état je me retrouve avec l'image de fond mais sans le tableau.

  14. #14
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Non mais on est d'accord....

    Mais le Fragment #1 peut être de type "ButtonFragment", de type "FormFragment" ou de type "ReportFragment".... L'alternance se fait par un simple "replace". Chacun avec son propre layout (3 layouts).

    Le "FragmentViewPager" (ou je ne sais quoi qui te permet de passer de #1 à #2 ou #3) contient toujours trois fragments, sauf que leur type dépend de l'état des données...
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Moi j'ai fait de la manière suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    //Pour mon cas j'utilise une boucle for afin de crée autant de fragment que souhaite l'utilisateur
    si 3 alors 
    Fragment[] FB;
     
    ChiffreDonnerParLutilisateur=3; -> //chiffre reçu par l'activité précédentes
    for(int i=0;i<ChiffreDonnerParLutilisateur;i++)
    {
        FB=new Fragment[i];
    }
    Alors comment je peux leurs attribués un type?

    Et sa veut dire que pour passer de l'état 1 a 2
    je ne supprime pas tout les élément compris dans mon linearlayout mais
    que je fait appel a FragmentTransaction pour venir remplacer mon fragment actuel par un autre.
    Et je refait la manipulation pour passer de l'état 2 a 3

    Est ce que ça veux dire qu'au final si je reprend mon exemple de 3 fragments d'origine j'aurais alors 2 fragments qui viendrons prendre la place successivement lors des cliques sur les boutons et cela sur mes 3 fragments d'origine.

    cela pourrait ressembler à la 1er image ?

    http://www.hostingpics.net/viewer.ph...pplication.png

    J'ai jamais utilise FragmentTransaction.
    Que devient mon ancien fragment qui est remplacé?
    Le fragment qui vient prendre la place de l'autre doit-il avoir son propre fichier xml?

    Merci de ton aide nicroman

  16. #16
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Exemple:

    Dans l'activité:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
     
    public static enum FragmentState {
        BUTTON,
        FORM,
        DATA
    };
     
     
    Fragment[]   fragments; // en java les membres: variables/fonctions commencent par une minuscule.
    FrgmentState[] states;
     
    public void onCreate(...)
    {
         int choixUtilisateur = ... ;
     
         this.fragments = new Fragment[choixUtilisateur];
         this.states = new FragmentState[choixUtilisateur];
         for (int i = 0; (i < choixUtilisateur); ++i) {
             this.states[i] = FragmentState.BUTTON; // peut-être autre chose en fonction du bundle de sauvegarde ?
             this.fragments[i] = createFragment(this.states[i]);
             this.fragments[i].setup(i,....); // peut-être quelques initialisations ?
         }
    }
     
    public Fragment createFragment(FragmentState state)
    {
        Fragment ret;
        switch (state) {
          case BUTTON: ret = new ButtonFragment(); break;
          case FORM: ret = new FormFragment(); break;
          case DATA: ret = new DataFragment(); break;
        }
        return ret;
    }
     
    public void setFragmentState(int idx, FragmentState state)
    {
        if (this.states[idx] == state) return; // nothing to do !
        this.states[idx] = state;
        Fragment newFragment = createFragment(state);
        // replacing old fragment with the new one
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.replace(R.id.XXXXXXX, newFragment);
        ft.setTransition(...); // si transition nécessaire
        ft.addToBackStack(null);
        ft.commit();
    }
    A l'intérieur des fragments il suffit alors de faire un truc genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ((MyActivity)getActivity()).setFragmentState(this.index,destinationState);
    Je ne sais pas comment la navigation est faite horizontalement (tu n'as toujours posté aucun code/xml), donc si ça se trouve, il suffit d'un seul et unique fragment !
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  17. #17
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Merci pour t'es lumière nicroman.
    Je test ton code dans l'aprem et je te fait un retour d'information.

    Pour mon code le voici, c'est la partie qui crée les différents fragment.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
     
    public class ListeJeux extends FragmentActivity  
    {
            private PagerAdapter mPagerAdapter;
    	String TypeetNbPartie;
    	ViewPager pager;
    	FragmentB[] FB;
    	FragmentT[] FT;
    	int[] NombresDeJeuxActif = new int[2];
    	@Override
    	protected void onCreate(Bundle savedInstanceState) 
    	{
    		super.onCreate(savedInstanceState);
    		super.setContentView(R.layout.activity_liste_jeux);
    		List<Fragment> fragments = new Vector<Fragment>(); // création d'un tableau dynamique  de type Fragment
    		TypeetNbPartie = this.getIntent().getStringExtra("TypeNbPartie");
    		String[]test = TypeetNbPartie.split(";");
    		for(int i=0;i<test.length;i++)
    		{
    			Log.d("ListeJeux.class","val "+i+" -> "+test[i]);
    			String[]test1 = test[i].split(":");
    			if(test1[0].equals("1"))
    			{
    				FB=new FragmentB[Integer.parseInt(test1[1])];
    				NombresDeJeuxActif[0]=Integer.parseInt(test1[1]);
    				Log.w("ListeJeux.class","Création ...");
    				for(int b=0;b<Integer.parseInt(test1[1]);b++)
    				{
    					Log.w("ListeJeux.class","Création d'un Jeu de B");
    					FB[b]= new FragmentB();
    					fragments.add(FB[b]);
    				}
    			}
    			else
    				Log.w("ListeJeux.class","Annulation ...");
    			if(test1[0].equals("2"))
    			{
    				FT=new FragmentT[Integer.parseInt(test1[1])];
    				NombresDeJeuxActif[1]=Integer.parseInt(test1[1])+NombresDeJeuxActif[0];
    				Log.w("ListeJeux.class","Création ...");
    				for(int b=0;b<Integer.parseInt(test1[1]);b++)
    				{
    					Log.w("ListeJeux.class","Création d'un Jeu de T");
    					FT[b] = new FragmentT();
    					fragments.add(FT[b]);
    				}
    			}
    			else
    				Log.w("ListeJeux.class","Annulation ...");
    		}
     
    		// Création de l'adapter qui s'occupera de l'affichage de la liste des fragments
    		this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
    		pager = (ViewPager) super.findViewById(R.id.viewpager);
    		// Affectation de l'adapter au ViewPager
    		pager.setAdapter(this.mPagerAdapter);
    	}
     
    public void commncerPartie(View v)
    	{
    		int indice=pager.getCurrentItem();
    		Log.d("ListeJeux.class","Indice -> "+(indice+1)+" NbB -> "+NombresDeJeuxActif[0]+" NbT -> "+NombresDeJeuxActif[1]);
    		if((indice+1)<=NombresDeJeuxActif[0])
    			FB[indice].DebutPartie();
    		else
    		{
    			Log.w("ListeJeux.class","Lancement Partie de T");
    			FT[indice-NombresDeJeuxActif[0]].DebutPartie();
    		}
    	}
     
     
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) 
    	{
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.activity_liste_jeux, menu);
    		return true;
    	}
     
     
    }
    Code xml initial
    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
    23
    24
    25
     
     
    <?xml version="1.0" encoding="utf-8"?>
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
    	   <LinearLayout 
    	       android:id="@+id/couleurArrPlan"
    	       android:layout_width="fill_parent"
    	       android:layout_height="fill_parent"
    	       android:background="#ffffff"
    	       android:orientation="horizontal">
     
    		       <android.support.v4.view.ViewPager
    		           android:id="@+id/viewpager"
    		           android:layout_width="wrap_content"
    		           android:layout_height="match_parent" 
    		           android:background="#ffffff">
     
    				</android.support.v4.view.ViewPager>
    	   </LinearLayout>
     
    </LinearLayout>


    Voici le code contenu dans la class FB
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
     
     
            package com.example.jeux;
     
     
     
    import com.example.jeux.R.id;
     
    import android.content.Context;
    import android.graphics.Color;
    import android.graphics.Typeface;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.text.InputFilter;
    import android.text.InputType;
    import android.util.Log;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.ViewGroup.LayoutParams;
    import android.view.inputmethod.EditorInfo;
    import android.view.inputmethod.InputMethodManager;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.LinearLayout;
    import android.widget.ScrollView;
    import android.widget.TableLayout;
    import android.widget.TableRow;
    import android.widget.TextView;
    import android.widget.Toast;
     
     
    public class FragmentBelotte extends Fragment 
    {
     
    	LinearLayout LinearB1;
    	TextView Info;
    	TextView btnInfoPartie1;
    	EditText NomJ;
    	EditText[] et = new EditText[4];
    	TextView[] tv = new TextView[4];
    	Button[] btn = new Button[4];
    	Button creationFS;
    	View[] espace = new View[4];
    	LinearLayout test;
    	LinearLayout test1;
    	LinearLayout LLGlobal;
    	LinearLayout LLChamp;
    	LinearLayout LLIntro;
    	LinearLayout LLBtnValidation;
     
    	TableRow tabDonnees1;
    	LayoutParams layoutParams;
    	TableLayout tabDefautCapteur1;
    	ScrollView defilementTab;
    	//LinearLayout.LayoutParams TEST;
    	//LinearLayout.LayoutParams TEST1;
    	//LinearLayout.LayoutParams TEST2;
     
    	String nomsParticipants="";
    	int Etat=0;
     
    	public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) 
    	{
    		View v=inflater.inflate(R.layout.activity_fragment_belotte, container, false);
    		LinearBelotte1=(LinearLayout)v.findViewById(id.LayoutB);
    		Log.e("FragmentB.class","Etat -> "+Etat);
    		btnInfoPartie1=(TextView)v.findViewById(id.btnInfoPartie);
    		btnInfoPartie1.setText("Cliquer ICI\nPour ouvrir une feuille de score\nD'un jeu de B");
    		btnInfoPartie1.setGravity(Gravity.CENTER);
    		if(Etat==1)
    			DebutPartie();
    		if(Etat==2)
    			CreationScoreTableau(nomsParticipants);
     
    		return v;
     
    	}
     
     
    	public void CreationScoreTableau(String NmParticipants)
    	{
     
    		Etat=2;
    		Toast toast=Toast.makeText(getActivity(),NmParticipants , Toast.LENGTH_LONG);
        	TextView yy = (TextView)toast.getView().findViewById(android.R.id.message);
    		if( yy != null) yy.setGravity(Gravity.CENTER);
    		toast.show();
    		LinearB1.removeAllViewsInLayout();
    		LinearB1.setOrientation(LinearLayout.VERTICAL);
     
    		/*
    		LinearLayout.LayoutParams TEST = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		TextView test = new TextView(getActivity());
    		test.setText("S'affiche bien");
    		LinearBelotte1.addView(test,TEST);
    		*/
     
    		LinearLayout.LayoutParams TEST = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		LinearLayout.LayoutParams TEST1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. WRAP_CONTENT) ;
    		LinearLayout.LayoutParams TEST2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		TEST2.setMargins(2, 2, 2, 2);
     
    		tabDefautCapteur1= new TableLayout(getActivity());
    	    tabDonnees1 = new TableRow(getActivity());
    	    tabDonnees1.setLayoutParams(TEST1);
     
    	    tabDonnees1.addView(generateTextView("Heures", TEST2,0));
    	    tabDonnees1.addView(generateTextView("Capteur", TEST2,0));
    	    tabDonnees1.addView(generateTextView("N°", TEST2,0));
    	    tabDonnees1.addView(generateTextView("Donnees", TEST2,0));
    	    tabDonnees1.addView(generateTextView("Rafraichissement", TEST2,0));
     
    	    // On attribut a la ligne du tableau les diffèrentes cases crées
    	    tabDefautCapteur1.addView(tabDonnees1,TEST2);
    		LinearBelotte1.addView(tabDefautCapteur1,TEST);
     
    	}
     
     
    	 public TextView generateTextView(String texte, LayoutParams ly,int ind) 
    	 {
    		 // Création d'un nouvelle élément de type TextView
             TextView result = new TextView(getActivity());
             // en fonction de la valeur de ind on attribut diffèrent paramètre
             switch(ind)
             {
             case 0:
            	 // Attribution d'une couleur de fond
            	 result.setBackgroundColor(Color.parseColor("#8781ff"));
            	 // Attribution du couleur pour les caractères
    	         result.setTextColor(Color.parseColor("#0900b0"));
    	         // Modification de la taille des caractères
    	         result.setTextSize(25);
                 break;
             case 1:
            	 result.setBackgroundColor(Color.LTGRAY);
                 result.setTextColor(Color.DKGRAY);
                 result.setTextSize(20);
    	         break;
             case 2:
            	 result.setBackgroundColor(Color.parseColor("#ffbb71"));
    	         result.setTextColor(Color.parseColor("#f07d00"));
    	         result.setTextSize(20);
    	         break;
             }
             // On centre le texte
             result.setGravity(Gravity.CENTER);
             // Attribution d'une marge
             result.setPadding(2, 2, 2, 2);
             result.setText(texte);
             result.setVisibility(View.VISIBLE);
             result.setLayoutParams(ly);
             // on renvoi l'élément crée et paramétré
             return result;
    	 }
     
     
     
    	android.view.View.OnClickListener btnValidation = new View.OnClickListener() 
    	{
     
    		@Override
    		public void onClick(View arg0) 
    		{
    			// TODO Auto-generated method stub
    					//et[arg0.getId()].clearFocus();
    			if(arg0.getId()==999)
    			{
    				int Validation=0;
    				for(int i=0;i<4;i++)
    				{
    					if(!et[i].getText().toString().equals("..."))
    					{
    						nomsParticipants+=et[i].getText().toString()+";";
    						Validation+=1;
    						Log.w("FragmentB.class","Le joueur N°"+i+" a un nom");
    					}
    					else
    					{
    						String msg="Le joueur N°"+(i+1)+" n'a pas de nom";
    						Toast toast=Toast.makeText(getActivity(),msg , Toast.LENGTH_SHORT);
    				    	TextView yy = (TextView)toast.getView().findViewById(android.R.id.message);
    						if( yy != null) yy.setGravity(Gravity.CENTER);
    						toast.show()
    						Log.w("FragmentB.class","Le joueur N°"+i+" n'a pas de nom");
    						nomsParticipants="";
    						return;
    					}
    				}
    				if(Validation==4)
    				{
    					Log.w("FragmentB.class","Création du tableau");
    					CreationScoreTableau(nomsParticipants);
    				}
    			}
     
    		}
    	};
     
     
     
    	android.view.View.OnTouchListener NomJoueur = new View.OnTouchListener() 
    	{
     
    		@Override
    		public boolean onTouch(View arg0, MotionEvent arg1) 
    		{
    			// TODO Auto-generated method stub
    			//Log.d("FragmentB.class","NomJoueur "+arg0.getId()+" --> "+arg1.toString());
     
    			et[arg0.getId()].setText("");
    			InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
    			imm.hideSoftInputFromWindow(et[arg0.getId()].getWindowToken(), 0);
    			imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT,0);
    			//arg1.setAction(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
     
    			return false;
    		}
    	};
     
     
    	public void DebutPartie()
    	{
    		Etat=1;
    		LinearLayout.LayoutParams LP1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		LinearLayout.LayoutParams LP2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		LinearLayout.LayoutParams LP3 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		LP1.weight=1;
    		LP3.weight=(float) 1.2;
    		LP2.weight=(float)2.5;
    		Log.e("FragmentB.class","Etat -> "+Etat);
    		LinearB1.removeAllViewsInLayout();
    		//LinearB1.setGravity(Gravity.CENTER_HORIZONTAL);
    		LLGlobal=new LinearLayout(getActivity());
    		LLGlobal.setOrientation(LinearLayout.VERTICAL);
    		LLIntro= new LinearLayout(getActivity());
    		LLIntro.setOrientation(LinearLayout.VERTICAL);
    		Info=new TextView(getActivity());
    		Info.setText("Entrer le noms des 4 joueurs");
    		Info.setTypeface(Typeface. defaultFromStyle (Typeface. BOLD )); 
    		Info.setTextSize(25);
    		Info.setGravity(Gravity.CENTER);
    		LLIntro.setBackgroundColor(Color.YELLOW);
    		LLIntro.addView( Info , LP1 ); 
    		LLGlobal.addView( LLIntro , LP2 ); 
    		LLChamp= new LinearLayout(getActivity());
    		LLChamp.setOrientation(LinearLayout.VERTICAL);
    		for(int i=0; i<4; i++) 
    		{
     
    			test1=new LinearLayout(getActivity());
    			test1.setOrientation(LinearLayout.VERTICAL);
    			espace[i]=new View(getActivity());
    			espace[i].setBackgroundColor(Color.BLUE);
    			test1.addView(espace[i]);
    			LLChamp.addView(test1,LP3);
     
    			test=new LinearLayout(getActivity());
    			test.setOrientation(LinearLayout.HORIZONTAL);
    			//test.setBackgroundColor(Color.BLUE);
    			tv[i]= new TextView(getActivity());
    			tv[i].setTextSize(30);
    			tv[i].setText("Joueur "+(i+1)+" -> ");
    			//tv[i].setBackgroundColor(Color.MAGENTA);
    			//tv[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
    			test.addView(tv[i]);
    			et[i] = new EditText(getActivity());
    			et[i].setBackgroundColor(Color.parseColor("#e0dede"));
    			et[i].setSingleLine();
    			et[i].setTextSize(20);
    			et[i].setMinimumWidth(100);
    			et[i].setGravity(Gravity.CENTER_HORIZONTAL);
    			et[i].setOnTouchListener(NomJoueur);
    			et[i].setFilters(new InputFilter[] {new InputFilter.LengthFilter(10)});
    			et[i].setInputType(InputType.TYPE_CLASS_TEXT);
    			et[i].setImeOptions(EditorInfo.IME_ACTION_DONE);
    			et[i].setId(i);
    			et[i].setText("...");
     
    	        test.setGravity(Gravity.CENTER);
    	        test.setBackgroundColor(Color.CYAN);
    	        LLChamp.addView(test,LP1);
    		}
    		LLGlobal.addView( LLChamp , LP1 ); 
    		LLBtnValidation=new LinearLayout(getActivity());
    		LLBtnValidation.setOrientation(LinearLayout.VERTICAL);
    		LLBtnValidation.setBackgroundColor(Color.RED);
    			creationFS= new Button(getActivity());
    			creationFS.setText("Création Feuille de Score");
    			creationFS.setId(999);
    			creationFS.setOnClickListener(btnValidation);
    		LLBtnValidation.addView( creationFS , LP1 ); 
    		LLGlobal.addView( LLBtnValidation , LP2 );
    		LinearB1.addView(LLGlobal,LP1); 
     
    	}
     
     
    }

    fichier xml de la class FB
    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
     
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" 
        android:orientation="vertical"
        android:background="@drawable/fond"
        android:id="@+id/LayoutB"
        android:gravity="center">
     
     
        <Button
            android:id="@+id/btnInfoPartie"
            android:onClick="commncerPartie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
     
     
    </LinearLayout>

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Après avoir regarder ton code nicroman
    je vois pas par quoi je dois remplacer les XXXXX
    dans la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ft.replace(R.id.XXXXXXX, newFragment);
    Dans mon cas je pense qu'il faut que je crée 3 fragments comportent chacun
    un fichier xml

    1er Fragment -> ButtonFragment.class --> Donne Accès au remplissage des données si clique sur le bouton
    2ème Fragment -> FormFragment.class --> Affiche le "formulaire"
    3ème Fragment -> DataFragment.class --> Affichage des données dans un tableau

    je viens les appeler de la manière suivantes en fonction des actions réalisées sur les boutons.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          case BUTTON: ret = new ButtonFragment(); break;
          case FORM: ret = new FormFragment(); break;
          case DATA: ret = new DataFragment(); break;
    C'est bien ça le raisonnement?

    Je comprend pas trop la phrase que tu m'a mis en commentaire
    -->// peut-être autre chose en fonction du bundle de sauvegarde ?
    Suis je obligé de sauvegarder mon ancien fragment avant de le remplacer par un autre?
    Je pense que qui faut le garder seulement si ou souhaite revenir dessus par la suite ?

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ft.replace(R.id.XXXXXXX, newFragment);
    XXX correspond ici à l'identifiant du widget qui va être remplacé par newFragment. Il s'agit généralement d'un id défini dans ton fichier de layout.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 14
    Points
    14
    Par défaut
    Je suis d'accord avec toi Simon MARQUIS.

    Mais dans mon cas Je devrais remplacer un fragment par un autre fragment et non un "bouton,edittext,etc" par un fragment.
    Pour moi il me semble que ces logique. Après j'en sais rien.

Discussions similaires

  1. Problème de création d'un tableau
    Par fog4000 dans le forum LabVIEW
    Réponses: 7
    Dernier message: 04/06/2007, 14h53
  2. Création d'un tableau dynamique
    Par Faro dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 07/04/2007, 09h03
  3. Création d'un tableau dynamique avec XSL-FO
    Par lionelbrizuela dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 31/01/2006, 11h04
  4. Problème avec PtInRegion et un tableau dynamique
    Par mduse dans le forum Langage
    Réponses: 2
    Dernier message: 06/12/2005, 09h29

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