Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java parseInt行中出现错误_Java_Android_Textview - Fatal编程技术网

Java parseInt行中出现错误

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

所以,我正在玩我的android数学游戏。我很难弄明白为什么我会出现这些错误,并尝试了一些在互联网上找到的代码,但它不起作用

我下面的代码没有错误。但当我尝试运行它时,我的日志中出现了错误

 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你刚刚投了赞成票,没有给它打分。这两者之间有区别