根据其他人的建议,请勿尝试在任何Android小部件上执行toString()
,因为它无法为您提供该视图的文字。
Android小部件通常会改为getText
。
如果要创建自定义视图,请避免使用toString
来获取文字,因为它不会遵循Android惯例。
答案 0 :(得分:0)
使用button.getText().toString()
代替button.toString()
从点击的按钮获取文字。
if (answer == Integer.valueOf(button.getText().toString())) {
//.....code here..
} else {
//.....code here..
}
因为当我们致电View.toString()时会返回:
一个字符串,其中包含此对象的简洁,可读的描述
答案 1 :(得分:0)
创建视图单击“侦听器”而不是方法checkAnswer()
,如:
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (answer == Integer.valueOf(but2.getText().toString())) {
title.setText("Correct");
} else {
title.setText("GAME OVER");
}
}
}
然后为按钮设置onClickListener:
but1.setOnClickListener(listener);
but2.setOnClickListener(listener);
答案 2 :(得分:0)
如果将checkAnswer方法更改为:
,可能会更好private void checkAnswer(int value) {
if (answer == value) {
title.setText("Correct");
} else {
title.setText("GAME OVER");
}
}
这种方式将更加可重用。然后你可以这样称呼它:
checkAnswer(Integer.valueOf(but1.getText().toString()))
答案 3 :(得分:0)
这是正确的方法:
on onCreate:
btn1.setOnCLickListener(this);
btn2.setOnCLickListener(this);
onClick中的:
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn1) {
//do stuff related to button 1;
}
else if (v.getId() == R.id.btn2) {
//do stuff related to button 2;
}
}
实现类中的OnClickListener
答案 4 :(得分:0)
For checking between string and parsing string into integer you have to do like this...
if (answer == Integer.parseInt("String here") {
title.setText("Correct");
} else {
title.setText("GAME OVER");
}