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 :

Placer boutons dynamiquement en boucle


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 93
    Points : 54
    Points
    54
    Par défaut Placer boutons dynamiquement en boucle
    Bonjour,
    J'ai besoin de placer des boutons de manière dynamique dans une boucle.
    Jusque la tous va bien, j'arrive à créer mes boutons mais ils sont tous placé au meme endroit pourtant j'ai essayer plusieurs chose.

    Voila tous ce que j'ai tenté :

    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
     
    for(int i=0;i<=9;i++)
    {
    	LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100 , 100); 
    	params.setMargins(50, 50, 50, 50); 
    	params.leftMargin=100;
    	params.gravity=Gravity.RIGHT;
     
    	tabB[i]=new Button(this );
    	tabB[i].setId(i);
    	tabB[i].setText("hello"+i);     
     
        tabB[i].layout(100, 100, 100, 100);
        tabB[i].setLayoutParams(params);
        tabB[i].postInvalidate(10, 10, 10, 10);
     
        this.addContentView(tabB[i],params);
        this.setVisible(true);
    }
    Merci de vos réponses.

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Comment est déclarer ton xml ?

    Est ce un Linear, un Relative ,... ?
    En vertical en horizontal ?

    Car avec ces données si tu veux rajouter 10 buttons en horizontal sur un écran de smartphone je pense que tu risque d'avoir un petit problème.
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100 , 100);
    params.setMargins(50, 50, 50, 50);
    params.leftMargin=100;
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 93
    Points : 54
    Points
    54
    Par défaut
    Problème résolu, j'ai pris un frameLayout plutot qu'un linearLayout.

    Je ne les ajoute pas en horizontal mais je fait 3 ligne de 3 boutons.

    Maintenant je voudrais qu'il y est pour chaque boutons une methode de clic donc j'ai tenté ce code mais ca plante des que je clic sur un bouton :

    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
     
    for(i=0;i<9;i++)
    {
     
    	FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(100 , 100); 
     
    	if(p>=0 && p<3)		
    		params.setMargins(5*22*p, 8, 5, 5); 
    	else if(p>=3 && p<6)
    	{
    		params.setMargins(5*22*v, 118, 5, 5);
    		v++;
    	}
    	else
    	{
    		params.setMargins(5*22*t, 228, 5, 5);
    		t++;
    	}
     
     
    	tabB[i]=new Button(this );
    	tabB[i].setId(i);     
     
     
        this.addContentView(tabB[i],params);
        this.setVisible(true);
        p++;
     
     tabB[i] = (Button) findViewById(tabB[i].getId());
        tabB[i].setBackgroundResource(R.drawable.vide);
        tabB[i].setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
     
            	changeImage(i);
     
            }
        });
    }
     
     public void  changeImage(int id)
        {
     
        	if(nbTours%2==0)
        		tabB[id].setBackgroundResource(R.drawable.croix);
        	else
        		tabB[id].setBackgroundResource(R.drawable.rond);
     
        	tabB[id].setEnabled(false);
        	nbTours++;
     
        }

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    tabB[i].setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
     
            	changeImage(i);
     
            }
        });

    ta variable i va te poser problème et c'est ce qu'il se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      public void onClick(View v) {
                // Perform action on click
     
            	changeImage(v.getId());
     
            }
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 93
    Points : 54
    Points
    54
    Par défaut
    Effectivement i me posait problème.
    Et sais tu pourquoi la ligne du if n'est pas fonctionnelle ?
    Apparemment une des deux variables n'est pas un drawable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      public void verif()
        {
        	if(tabB[0].getBackground()==R.drawable.croix && tabB[1].getBackground()==R.drawable.croix && tabB[2].getBackground()==R.drawable.croix)
        		gagne();
     
        }

Discussions similaires

  1. [FLASH 8] Changer label bouton dynamiquement dans une boucle
    Par Malau dans le forum ActionScript 1 & ActionScript 2
    Réponses: 5
    Dernier message: 03/05/2006, 16h55
  2. changer image d'un bouton dynamiquement
    Par Dnx dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/11/2005, 13h03
  3. [VB.Net] usercontrol static et bouton dynamique
    Par krest dans le forum ASP.NET
    Réponses: 19
    Dernier message: 26/07/2005, 17h43
  4. [Forms] Bouton dynamique
    Par lafouine dans le forum Forms
    Réponses: 4
    Dernier message: 20/07/2005, 10h24
  5. Réponses: 2
    Dernier message: 20/01/2004, 14h27

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