Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Invité régulier
    Inscrit en
    septembre 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 21
    Points : 5
    Points
    5

    Par défaut Comment implémenter des boutons dans des fragments ?

    Bonjour à tous,

    Je souhaiterais réaliser une application qui utilise PagerAdapter et ViewPager.

    Je souhaiterais diviser mon écran en deux partie :
    -- la partie supérieure à la moitié de mon écran contient des icones, images et boutons ("partie statique de mon IHM")
    -- la partie inférieure à la moitié de mon écran contient ViewPager me permettant de naviguer entre différents fragments ("partie dynamique de mon IHM")

    Donc, j'ai implémenté une classe dérivant de FragmentActivity, une classe dérivant de PagerAdapter, deux classes dérivant de Fragment.

    Dans ma class MainFragmentActivity j'ai :
    setContentView (R.layout.main);

    Dans mon fichier XML main.xml j'ai :
    - une image qui s'affiche sur la totalité de mon écran (fond d'écran)
    - puis une partie supérieure de l'IHM plusieurs ImageView, Button et TextView.
    - et enfin une partie inférieure de l'IHM le fameux android.support.v4.view.ViewPager

    Dans mes deux fichiers XML (screen_remote_fragment1.xml et screen_remote_fragment2.xml) décrivant mes deux fragments j'ai :
    - plusieurs Button et ImageView.

    L'affichage de mon IHM se passe bien, la navigation des deux écrans via le ViewPager dans la partie inférieure de mon IHM s'effectue correctement.

    Jusqu'ici tout va bien...Mais
    Problème :
    1) Je souhaiterais récupérer le click sur un Button de ma partie supérieure (Button décrit dans main.xml) pour afficher une nouvelle Activity (avec des button, textview...) à la place de mon ViewPager dans la partie inférieure de mon IHM.
    2) Je souhaiterais récupérer le click sur un Button de ma partie inférieure (Button sur le fragment1 par exemple, button décrit dans screen_remote_fragment1.xml) afin de modifier par exemple le TextView de ma partie supérieure de mon IHM (TextView décrit dans main.xml)
    3) Je souhaiterais récupérer le click sur un Button de ma partie inférieure (Button sur le fragment2 par exemple, button décrit dans screen_remote_fragment2.xml) afin d'afficher une nouvelle Activity(composé de plusieurs Button, ImageView...) dans la partie inférieure de mon IHM à la place du ViewPAger.

    Avez vous des suggestions à me faire ?

    En pièce jointe se trouve l'IHM...
    Images attachées Images attachées

  2. #2
    Invité régulier
    Inscrit en
    septembre 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 21
    Points : 5
    Points
    5

    Par défaut Réponse à la question 2)

    Bonjour à tous,

    Réponse à la question 2) :
    -> dans le fichier screen_remote_fragment1.xml, j'ai implémenté le Button avec le paramètre android:onClick="clickButton"
    -> dans la classe dérivant de FragmenyActivity j'ai implémenté la méthode
    public void clickButton(View v). Je récupère le composant de la partie supérieure de mon IHM par (ImageView)findViewById(R.id.IdIconPuissance). Puis je modifie la src du composant par setImageResource(R.drawable.icon_0).

    Avez vous des réponses pour la question 1) et 3) ?

  3. #3
    Responsable Android

    Avatar de Feanorin
    Inscrit en
    avril 2004
    Messages
    4 036
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 4 036
    Points : 6 586
    Points
    6 586

    Par défaut

    Bonjour,


    Réponse à la question 2) :
    -> dans le fichier screen_remote_fragment1.xml, j'ai implémenté le Button avec le paramètre android:onClick="clickButton"
    -> dans la classe dérivant de FragmenyActivity j'ai implémenté la méthode
    public void clickButton(View v). Je récupère le composant de la partie supérieure de mon IHM par (ImageView)findViewById(R.id.IdIconPuissance). Puis je modifie la src du composant par setImageResource(R.drawable.icon_0).

    je pense que la réponse à ta 1) et 3) question devrait ressemble pas mal à la 2).


    En gros attribuer à la propriété onClick de ton button une fonction. Soit par xml comme tu l'as fait soit par code via un SetOnClickListener sur ton button.

    Situ le fais par le fichier xml ben implémenter la fonction dans l'Activity où le bouton appartient. Puis mettre le code adéquat dans cette fonction.

    Enfin garde le même raisonnement que ce que tu as fait que la solution que tu as proposé.

  4. #4
    Invité régulier
    Inscrit en
    septembre 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 21
    Points : 5
    Points
    5

    Par défaut

    Bonjour,

    Tout d'abord, je te remercie Feanorin pour tes conseils.

    Pour les réponses 1) et 3), j'ai gardé le même raisonnement que la réponse 2).
    J'ai attribué la propriété onClick sur les boutons des deux fragments (screen_remote_fragment1.xml et screen_remote_fragment2).xml. Puis dans la classe dérivant de FragmenyActivity j'ai implémenté les méthodes de chaque onClick.

    J'ai une autre question :
    Peut-on modifier le background d'un button d'un fragment ?
    Je souhaiterais par exemple sur le click d'un button d'un fragment changer son background.

    J'ai essayé dans la méthode de mon button implémentée dans la classe dérivant de FragmenyActivity:
    Code :
    1
    2
    3
    4
    5
     
    public void clickButtonFragment (View v)
    {
      buttonFragment.setBackgroundResource(R.drawable.button_fragment_vert);
    }
    Mais ça ne marche pas ! ça fait planter mon application...

    Avez vous des suggestions à me faire ?

  5. #5
    Responsable Android

    Avatar de Feanorin
    Inscrit en
    avril 2004
    Messages
    4 036
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 4 036
    Points : 6 586
    Points
    6 586

    Par défaut

    Bonjour,

    Peut-on modifier le background d'un button d'un fragment ?
    Je souhaiterais par exemple sur le click d'un button d'un fragment changer son background.

    J'ai essayé dans la méthode de mon button implémentée dans la classe dérivant de FragmenyActivity:
    Vu le code j'aurais plutôt mis cela :
    Code :
    1
    2
    3
    4
    public void clickButtonFragment (View v)
    {
      v.setBackgroundResource(R.drawable.button_fragment_vert);
    }
    Après peux tu nous dire l'erreur que tu obtiens dans le logcat ?

  6. #6
    Invité régulier
    Inscrit en
    septembre 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 21
    Points : 5
    Points
    5

    Par défaut

    Bonjour,

    Merci pour ta réponse Feanorin, lors du clic sur le Button, le changement de background fonctionne très bien !!!
    J'ai mis ne nouvelle discussion sur ce problème dans le forum avec mon projet détaillé.

  7. #7
    Responsable Android

    Avatar de Feanorin
    Inscrit en
    avril 2004
    Messages
    4 036
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 4 036
    Points : 6 586
    Points
    6 586

    Par défaut

    J'ai mis ne nouvelle discussion sur ce problème dans le forum avec mon projet détaillé.
    Dans ce cas mets en résolu ce post .

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •