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 le texte d'un bouton au clic


Sujet :

Composants graphiques Android

  1. #1
    Invité
    Invité(e)
    Par défaut Modifier le texte d'un bouton au clic
    Bonjour,

    J'essaie de créer un Morpion pour Android, avec Android Studio.
    Je rencontre une difficulté pour changer le texte du bouton au clic.
    J'ai trouvé que la méthode a utilisé était "setText();" mais ne semble pas reconnu dans mon code.

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            if (currentPlayer == 1) {
                v.setText("X");
            } else {
                v.setText("O");
            }

    Voici mon code entier
    Code Java : 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
    package fr.morpion;
     
    import androidx.appcompat.app.AppCompatActivity;
     
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
     
    import java.util.ArrayList;
     
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
     
        private int board[][] = new int[3][3];
        private int currentPlayer = 1;
     
        private TextView player;
     
        private ArrayList<Button> all_buttons = new ArrayList<>();
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            player = findViewById(R.id.player);
     
            Button btn1 = findViewById(R.id.btn1);
            Button btn2 = findViewById(R.id.btn2);
            Button btn3 = findViewById(R.id.btn3);
            Button btn4 = findViewById(R.id.btn4);
            Button btn5 = findViewById(R.id.btn5);
            Button btn6 = findViewById(R.id.btn6);
            Button btn7 = findViewById(R.id.btn7);
            Button btn8 = findViewById(R.id.btn8);
            Button btn9 = findViewById(R.id.btn9);
     
            all_buttons.add(btn1);
            all_buttons.add(btn2);
            all_buttons.add(btn3);
            all_buttons.add(btn4);
            all_buttons.add(btn5);
            all_buttons.add(btn6);
            all_buttons.add(btn7);
            all_buttons.add(btn8);
            all_buttons.add(btn9);
     
            for (Button btn:all_buttons) {
                btn.setBackground(null);
                btn.setOnClickListener(this);
            }
        }
     
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btn1:
                    board[0][0] = currentPlayer;
                    break;
                case R.id.btn2:
                    board[1][0] = currentPlayer;
                    break;
                case R.id.btn3:
                    board[2][0] = currentPlayer;
                    break;
                case R.id.btn4:
                    board[0][1] = currentPlayer;
                    break;
                case R.id.btn5:
                    board[1][1] = currentPlayer;
                    break;
                case R.id.btn6:
                    board[2][1] = currentPlayer;
                    break;
                case R.id.btn7:
                    board[0][2] = currentPlayer;
                    break;
                case R.id.btn8:
                    board[1][2] = currentPlayer;
                    break;
                case R.id.btn9:
                    board[2][2] = currentPlayer;
                    break;
                default:
                    return;
            }
     
            if (currentPlayer == 1) {
                v.setText("X");
            } else {
                v.setText("O");
            }
     
        }
    }

    Merci de votre aide
    Dernière modification par Invité ; 19/01/2020 à 15h18. Motif: Coloration syntaxique [CODE=Java] … [/CODE]

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    août 2003
    Messages
    6 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 6 621
    Points : 19 765
    Points
    19 765
    Par défaut
    View n'a pas de method setText();
    Il faut donc que tu précises que la vue que tu utilise dans onClick est de type Button => il faut donc caster v en Button

    Attention toutefois , si tu utilise le même click listener pour tous tes éléments d'interface tu pourrais avoir de problèmes si une des vues n'est pas un bouton
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Modifier le texte d'un bouton [Tkinter]
    Par legomanfr dans le forum Tkinter
    Réponses: 4
    Dernier message: 10/01/2019, 08h25
  2. Tkinter - modifier le texte d'un bouton en cliquant dessus
    Par KonTiKI dans le forum Général Python
    Réponses: 6
    Dernier message: 21/05/2015, 11h37
  3. [XL-2003] Modifier le texte sur un bouton affecté à une macro
    Par Un Internaute dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/10/2014, 17h46
  4. [XL-2003] Modifier le texte d'un bouton macro
    Par peofofo dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/01/2010, 19h00
  5. Modifier le texte d'un bouton (Caption) dans une document
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 27/08/2008, 09h47

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