Partage
  • Partager sur Facebook
  • Partager sur Twitter

[ANDROID] Fragments

Ajouter un composant sur un fragment existant

    29 mars 2013 à 0:36:36

    Bonsoir tout le monde !

    Voilà je débute le développement sur Android, et étant habitué plus au .net très permissif, passer au Java Android m'est très dur.

    J'ai un soucis avec les Fragments. En gros, j'aimerais ajouter des composants (principalement des Boutons) sur un Fragment déjà existant. J'ai cru comprendre qu'on pouvait le faire avec la méthode onCreate(), mais mon soucis est que les Fragments existent déjà et que j'arrive poser mes Boutons plus tard. Du coup j'ai essayé de récupérer le Layout correspondant au Fragment pour ajouter mes Boutons dessus, sans succès. La seule chose que j'arrive à récupérer c'est la View, et cela ne me sert à rien j'en ai bien l'impression.

    J'espère que je suis assez clair, et que quelqu'un pourra m'aider !

    • Partager sur Facebook
    • Partager sur Twitter
      30 mars 2013 à 0:16:48

      Bonsoir,

      Non, ce n'est pas très compréhensible. Soit tu es plus claire, soit tu peux apprendre comment fonctionne les fragments via ce tutoriel pour aller plus loin dans le développement Android. :)

      • Partager sur Facebook
      • Partager sur Twitter
      Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
        2 avril 2013 à 15:14:42

        Je vais essayer d'être plus clair : à l'ouverture de mon application je crée 2 fragments, qui sont vides. Puis-je à un certain moment poser un bouton sur mes fragments ? (Donc après la création des fragments)

        Merci

        • Partager sur Facebook
        • Partager sur Twitter
          3 avril 2013 à 14:35:39

          Personne pour m'aider ?
          • Partager sur Facebook
          • Partager sur Twitter
            3 avril 2013 à 14:54:12

            Pourquoi ne pourrais-tu pas le faire ? Si tu n'as qu'un simple layout sans composant graphique à l'intérieur, tu peux récupérer une référence de ce layout dans ton fragment et rajouter dynamiquement des boutons par après quand tu veux et où tu veux. :)

            • Partager sur Facebook
            • Partager sur Twitter
            Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
              3 avril 2013 à 15:12:06

              C'est le soucis, je ne trouve pas comment faire pour récupérer le layout, genre une commande Fragment.getLayout()
              • Partager sur Facebook
              • Partager sur Twitter
                3 avril 2013 à 15:13:50

                Non, tu désérialises ton fichier XML d'affichage dans la méthode onCreateView, c'est avec la méthode findViewById(id) dans cette méthode que tu dois utiliser pour récupérer la référence de ton layout.

                • Partager sur Facebook
                • Partager sur Twitter
                Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
                  3 avril 2013 à 16:50:40

                  Je suis désolé, j'ai vraiment du mal. Mes fragments sont créés dynamiquement, je ne sais pas combien j'en aurais à l'avance. En fait c'est une appli de domotique, j'aurais par exemple un fragment cuisine, un salon avec sur leur layout uniquement les composants qui leur correspondent. Je ne peux donc pas créer le bon nombre de layout et leur associer avec findViewById(id). Je suis vraiment bloqué.

                  La solution que j'avais envisagé c'était de créer un layout dynamiquement pendant le onCreateView du fragment, et de rajouter mes boutons dessus plus tard. Or je n'ai pas accès à ce layout grâce à Fragment.getLayout(), qui n'existe pas. Je ne sais donc pas comment faire...

                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 avril 2013 à 17:12:21

                    Bon je viens encore vous demander de l'aide, je n'y arrive vraiment pas. Je vais essayer vous donner des bouts de code pour que vous puissiez m'aider.

                    J'ai une liste de myFragment appelée fragments;

                    Pour pouvoir travailler sur le layout de chaque myFragment, j'ai implémenté une méthode

                    public RelativeLayout getLayout()
                    {
                        return lay;
                    }

                    qui renvoie le layout créé dans le onCreateView()

                    @Override
                     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
                    {
                        super.onCreateView(inflater, container, savedInstanceState);
                        	
                        lay = new RelativeLayout(getActivity());
                        	
                        return lay;
                    }

                    Ensuite je veux ajouter un bouton sur chaque fragment, je procède donc

                    for(myFragment f : fragments)
                    {
                        Button bt = new Button(this);
                        bt.setText("TEST");
                        	
                        LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, 80);
                        	
                        f.getLayout().addView(bt, params);
                    }

                    Or j'ai une erreur de type NullPointerExeption sur le getLayout(), alors que mon fragment existe et son layout aussi.

                    Je ne comprends vraiment pas pourquoi cela est si dur d'ajouter dynamiquement des boutons sur un fragment...

                    • Partager sur Facebook
                    • Partager sur Twitter

                    [ANDROID] Fragments

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown