68 votes

Obtenir le texte d'un bouton pressé

Comment obtenir le texte d'un bouton enfoncé (Android) ?

Je peux obtenir le texte d'un bouton :

String buttonText = button.getText();

Je peux obtenir l'identifiant d'un bouton pressé :

int buttinID = view.getId();

Ce que je n'arrive pas à trouver pour le moment, c'est comment obtenir le texte sur le bouton pressé.

public void onClick(View view) {
  // Get the text on the pressed button
}

175voto

Heiko Rupp Points 15153

La vue sur laquelle on vous fait passer onClick() est le bouton que vous recherchez.

public void onClick(View v) {
    // 1) Possibly check for instance of first 
    Button b = (Button)v;
    String buttonText = b.getText().toString();
}

1) Si vous utilisez une classe non anonyme comme onClickListener vous pouvez vérifier si le type de la vue avant de l'intégrer, car il peut s'agir de quelque chose d'autre qu'un bouton.

0 votes

Merci, ça marche après avoir ajouté .tostring() comme Scythe l'a dit :) J'ai oublié de le convertir en objet Button d'abord.

0 votes

Merci, c'est exactement ce que je cherchais.

0 votes

Vous savez pourquoi la simple adresse ````` String buttonText = (Button) v).getText().toString() ; `````` ne fonctionne pas ?

8voto

Si vous êtes sûr que l'instance OnClickListener est appliquée à un bouton, vous pouvez simplement convertir la vue reçue en un bouton et récupérer le texte :

public void onClick(View view){
Button b = (Button)view;
String text = b.getText().toString();
}

7voto

Amol Dale Points 60

Essayez d'utiliser :

String buttonText = ((Button)v).getText().toString();

2 votes

Cela fonctionnera mais vous devez le convertir en String. Donc c'est : String s = (String) ((Button)v).getText();

4voto

Android Geek Points 195

Essayez ça,

Button btn=(Button)findViewById(R.id.btn);
String btnText=btn.getText();

2voto

Anonsage Points 599

En Kotlin :

myButton.setOnClickListener { doSomething((it as Button).text) }

Note : Ceci permet d'obtenir le texte du bouton sous forme de CharSequence que d'autres endroits du code peuvent probablement utiliser. Si vous voulez vraiment une chaîne à partir de là, alors vous pouvez utiliser .toString() .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X