所以,我有我的这个Android数学游戏。而且我很难搞清楚为什么我会收到这些错误并尝试在互联网上找到一些代码,但它无法正常工作。
我的代码如下所示没有错误。但是当我尝试运行它时,我的logcat中出现了错误。
check.setOnClickListener(new OnClickListener(){
int x = Integer.valueOf(fn.getText().toString());
int y = Integer.valueOf(sn.getText().toString());
public void onClick(View v){
String ope = op.getText().toString();
if(ope=="+"){
if(x + y == total2){
Toast.makeText(getApplicationContext(), "Answer is correct. You may proceed to level 2.", Toast.LENGTH_LONG).show();
}
}
if(ope=="-"){
if(x-y==total2){
Toast.makeText(getApplicationContext(), "Answer is correct. You may proceed to level 2.", Toast.LENGTH_LONG).show();
}
}
if(ope=="*"){
if(x*y==total2){
Toast.makeText(getApplicationContext(), "Answer is correct. You may proceed to level 2.", Toast.LENGTH_LONG).show();
}
}
if(ope=="/"){
if(x/y==total2){
Toast.makeText(getApplicationContext(), "Answer is correct. You may proceed to level 2.", Toast.LENGTH_LONG).show();
}
else if(y/x==total2){
Toast.makeText(getApplicationContext(), "Answer is correct. You may proceed to level 2.", Toast.LENGTH_LONG).show();
}
}
}});
这是我的LOGCAT:
我正在解析它,对吧?那么,为什么我有这些错误?
注意: fn和sn是textViews,op也是。 fn和sn是用户放置操作数答案的位置,op是操作符。游戏中给出了这个随机数,用户应该点击2个操作数和一个算子来制作一个等式,并能够得出给定的随机数。她/他的等式的结果应该与给出的随机数相同。
谢谢你:)
答案 0 :(得分:3)
您的代码中存在两个问题。首先,正如亨利在你的回答中提到的那样,你需要提出以下几点:
int x = Integer.valueOf(fn.getText().toString());
int y = Integer.valueOf(sn.getText().toString());
在onClick
方法
第二个问题是您使用==
在所有if
项检查中进行字符串比较,例如:
if(ope=="+")
您应该使用String equals()
方法进行字符串比较。如果条件要使用等于方法,请更改它和其他,如下所述:
if(ope.equals("+"))
==
比较两个引用是否指向相同的内存位置,而equals()
执行字符串内容比较。
答案 1 :(得分:2)
问题是,当您附加onClick侦听器时,您会获得x
和y
值。那时的字段仍然是空的。
要修正这些行
int x = Integer.valueOf(fn.getText().toString());
int y = Integer.valueOf(sn.getText().toString());
在onClick
方法内部。