Get text from pressed button
AndroidAndroid Problem Overview
How can I get the text from a pressed button? (Android)
I can get the text from a button:
String buttonText = button.getText();
I can get the id from a pressed button:
int buttinID = view.getId();
What I can't find out at this moment is how to get the text on the pressed button.
public void onClick(View view) {
// Get the text on the pressed button
}
Android Solutions
Solution 1 - Android
The view you get passed in on onClick()
is the Button you are looking for.
public void onClick(View v) {
// 1) Possibly check for instance of first
Button b = (Button)v;
String buttonText = b.getText().toString();
}
- If you are using a non-anonymous class as
onClickListener
, you may want to check for the type of the view before casting it, as it may be something different than a Button.
Solution 2 - Android
If you're sure that the OnClickListener instance is applied to a Button, then you could just cast the received view to a Button and get the text:
public void onClick(View view){
Button b = (Button)view;
String text = b.getText().toString();
}
Solution 3 - Android
Try to use:
String buttonText = ((Button)v).getText().toString();
Solution 4 - Android
Try this,
Button btn=(Button)findViewById(R.id.btn);
String btnText=btn.getText();
Solution 5 - Android
In Kotlin:
myButton.setOnClickListener { doSomething((it as Button).text) }
Note: This gets the button text as a CharSequence
, which more places in code can likely use. If you really want a String from there, then you can use .toString()
.
Solution 6 - Android
Button btn=(Button)findViewById(R.id.btn);
String btnText=btn.getText().toString();
Later this btnText
can be used .
For example:
if(btnText == "Text for comparison")
Solution 7 - Android
Typecast the view into a button and access the text content using getText()
.
public String onClick(View view) {
// Get the text on the pressed button
return ((Button)view).getText().toString()
}