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 :

Modifier des boutons dans un while (swich)


Sujet :

Composants graphiques Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Modifier des boutons dans un while (swich)
    Bonjour !

    J'aimerais tout simplement faire une suite de modification de boutons pour faire comme une animation.
    En fait j'ai 4 boutons et j'aimerais qu'ils s'illuminent les un après les autres dans un ordre aléatoire (Après avoir cliquer sur un bouton de lancement). Pour ça j'ai crée un while qui tire à chaque fois un chiffre aléatoire et qui selon le chiffre, anime tel ou tel bouton en le rendant blanc pendant un certains temps, puis retienne la séquence dans une ArrayList().
    Je suis débutant et pour moi le code devrait fonctionner mais en réalité j'ai l'impression qu'il gère tout le while en interne et n'effectue la totalité des modifications qu'à la toute fin, ce qui fait qu'on ne voit absolument rien à l'écran puisque les boutons reprennent tous leur état initiale. Je suppose qu'en revanche l'ArrayList() est bien remplie mais je sais pas comment l'afficher et n'ai pas encore chercher (Mais ce n'est pas le problème ^^)

    Savez-vous quelles modifications je pourrais faire pour que l'application réagisse comme je le voudrait tout en gardant un code assez simple ?
    C'est peut-être juste une petite erreur que j'ai faite ou alors ce n'est peut-être pas possible de cette façon ?

    Merci par avance, voici mon morceau de code :

    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
     
        public void Lancer(View v){
     
            ArrayList<Integer> la_serie = new ArrayList<>();
     
            Button boutonRouge = findViewById(R.id.rouge);
            Button boutonBleu = findViewById(R.id.bleu);
            Button boutonVert = findViewById(R.id.vert);
            Button boutonJaune = findViewById(R.id.jaune);
     
            Integer i = 0;
            Random alea = new Random();
     
            while(i<7)
            {
                sleep(500);
     
                Integer j = alea.nextInt(4);
                switch (j)
                {
                    case 0:
                        boutonRouge.setBackgroundResource(R.drawable.custom_blanc);
                        sleep(200);
                        boutonRouge.setBackgroundResource(R.drawable.custom_rouge);
                        la_serie.add(0);
                        break;
                    case 1:
                        boutonBleu.setBackgroundResource(R.drawable.custom_blanc);
                        sleep(200);
                        boutonBleu.setBackgroundResource(R.drawable.custom_bleu);
                        la_serie.add(1);
                        break;
                    case 2:
                        boutonVert.setBackgroundResource(R.drawable.custom_blanc);
                        sleep(200);
                        boutonVert.setBackgroundResource(R.drawable.custom_vert);
                        la_serie.add(2);
                        break;
                    case 3:
                        boutonJaune.setBackgroundResource(R.drawable.custom_blanc);
                        sleep(200);
                        boutonJaune.setBackgroundResource(R.drawable.custom_jaune);
                        la_serie.add(3);
                        break;
                }
     
     
                i=i+1;
            }
        }
    }

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai essayé de changer le "double" changement de background des boutons par une animation alpha :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    case 0:
                        boutonRouge.startAnimation(alpha);
                       la_serie.add(0);             
                        break;
    Effectivement c'est à la toute fin du while (ou de la procédure ?) que tout se passe et donc tous mes boutons font leur animation en même temps.

    Comment faire pour que ça agisse par étape en suivant bien l'ordre d’exécution ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/09/2015, 08h41
  2. [C#] Modifier le text des boutons dans un datagrid
    Par Le-Cortex dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/01/2006, 10h17
  3. Pouvoir gérer les actions des boutons dans une classe
    Par Cyborg289 dans le forum Composants
    Réponses: 2
    Dernier message: 08/07/2005, 12h08
  4. [FLASH MX] Action des boutons dans un menu déroulant
    Par zab_paris dans le forum Flash
    Réponses: 1
    Dernier message: 05/07/2005, 18h14
  5. Réponses: 2
    Dernier message: 31/08/2002, 14h00

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