按照其他人的建议,不要在任何Android小部件上尝试toString()
,因为它不会给你视图的文本。
Android小部件通常具有getText
。
在创建自定义视图的情况下,避免使用toString
获取文本,因为它不会遵循Android实践。
使用button.getText().toString()
而不是button.toString()
从单击的按钮获取文本。
if (answer == Integer.valueOf(button.getText().toString())) {
//.....code here..
} else {
//.....code here..
}
因为当我们调用View.toString()时返回:
一个字符串,包含此对象的简明、可读的描述
创建View Click Listener,而不是方法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");
}
}
}
然后为按钮设置ClickListener:
but1.setOnClickListener(listener);
but2.setOnClickListener(listener);
如果将checkAnswer方法更改为:可能会更好
private void checkAnswer(int value) {
if (answer == value) {
title.setText("Correct");
} else {
title.setText("GAME OVER");
}
}
这种方式将更加可重复使用。然后你可以这样称呼它:
checkAnswer(Integer.valueOf(but1.getText().toString()))
这是正确的方法:
在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;
}
}
类中的implemt OnClickListener
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");
}