Java parseInt行中出现错误
所以,我正在玩我的android数学游戏。我很难弄明白为什么我会出现这些错误,并尝试了一些在互联网上找到的代码,但它不起作用 我下面的代码没有错误。但当我尝试运行它时,我的日志中出现了错误Java parseInt行中出现错误,java,android,textview,Java,Android,Textview,所以,我正在玩我的android数学游戏。我很难弄明白为什么我会出现这些错误,并尝试了一些在互联网上找到的代码,但它不起作用 我下面的代码没有错误。但当我尝试运行它时,我的日志中出现了错误 check.setOnClickListener(new OnClickListener(){ int x = Integer.valueOf(fn.getText().toString()); int y = Integer.valueOf(sn.getText().to
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();
}
}
}});
这是我的日志:
我正在分析它,对吧?那么,为什么我会有这些错误呢
注:fn和sn是文本视图,op也是。fn和sn是用户输入操作数答案的地方,op是运算符。游戏中给出了这个随机数,用户应该点击2个操作数和一个操作符来建立一个等式,并能够得出给定的随机数。她/他的方程式的结果应与给出的随机数相同
谢谢:问题是,当您连接onClick侦听器时,会得到x和y值。当时字段仍然是空的 要解决这个问题,请把这些线
int x = Integer.valueOf(fn.getText().toString());
int y = Integer.valueOf(sn.getText().toString());
在onClick方法内部。问题在于,当您连接onClick侦听器时,您会得到x和y值。当时字段仍然是空的 要解决这个问题,请把这些线
int x = Integer.valueOf(fn.getText().toString());
int y = Integer.valueOf(sn.getText().toString());
在onClick方法内部。代码中有两个问题。首先,正如亨利在你的回答中提到的,你需要写以下几行:
int x = Integer.valueOf(fn.getText().toString());
int y = Integer.valueOf(sn.getText().toString());
onClick方法的内部
第二个问题是,在所有if检查中都使用==进行字符串比较,例如:
if(ope=="+")
您应该使用stringequals方法来进行字符串比较。将其和其他if条件更改为使用equals方法,如下所述:
if(ope.equals("+"))
==比较两个引用是否指向同一内存位置,而equals比较字符串内容。代码中有两个问题。首先,正如亨利在你的回答中提到的,你需要写以下几行:
int x = Integer.valueOf(fn.getText().toString());
int y = Integer.valueOf(sn.getText().toString());
onClick方法的内部
第二个问题是,在所有if检查中都使用==进行字符串比较,例如:
if(ope=="+")
您应该使用stringequals方法来进行字符串比较。将其和其他if条件更改为使用equals方法,如下所述:
if(ope.equals("+"))
==比较两个引用是否指向同一内存位置,而equals比较字符串内容。代码中的视图元素是什么?确定尝试以下操作:int x=Integer.parseIntString.valueOffn.getText;已经尝试过这个加上下面@Henry的评论,虽然我的答案是正确的,但仍然有错误。@pingboo23请不要在标题中添加已解决的问题。用绿色复选标记标出答案。代码中fn是什么视图元素?好的,试试这个:int x=Integer.parseIntString.valueOffn.getText;已经尝试过这个加上下面@Henry的评论,虽然我的答案是正确的,但仍然有错误。@pingboo23请不要在标题中添加已解决的问题。用绿色的复选标记标出答案。我试过了,一开始还行。但当我试着点击“检查”按钮时,它说,“强制关闭”。虽然我的答案是正确的。它应该打印出我的答案是正确的。logcat中有什么异常?@pingboo23检查我的答案,它告诉你为什么你看到force Close我尝试了它,一开始效果不错。但当我试着点击“检查”按钮时,它说,“强制关闭”。虽然我的答案是正确的。它应该打印出我的答案是正确的。logcat中有什么异常?@pingboo23检查我的答案,它告诉你为什么会看到forceclose@pingboo23这是因为字符串“16”中有空格。使用此处指定的trim方法int x=Integer.valueOffn.getText.toString.trim;int y=Integer.valueOfsn.getText.toString.trim;我只是删除了任何其他空间,它的作品很好,不需要修剪它。顺便说一句,你已经投了赞成票:@pingboo23你刚刚投了赞成票,没有给它打分。这两者之间有区别thi@pingboo23这是因为字符串“16”中有空格。使用此处指定的trim方法int x=Integer.valueOffn.getText.toString.trim;int y=Integer.valueOfsn.getText.toString.trim;我只是删除了任何其他空间,它的作品很好,不需要修剪它。顺便说一句,你已经投了赞成票:@pingboo23你刚刚投了赞成票,没有给它打分。这两者之间有区别