Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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 操作员'<';无法应用于android.widget.textview int_Java_Android_If Statement - Fatal编程技术网

Java 操作员'<';无法应用于android.widget.textview int

Java 操作员'<';无法应用于android.widget.textview int,java,android,if-statement,Java,Android,If Statement,我正在开发一个可以计算体重指数并分析结果的应用程序,因此我在应用程序中添加了一个切换案例,以帮助它根据结果提供建议。我将BMI结果显示在一个文本视图上,我已将其设置为不可见,但我一直得到操作员的信息,您的开关盒正在测试v.getId()值,因此case ans

我正在开发一个可以计算体重指数并分析结果的应用程序,因此我在应用程序中添加了一个切换案例,以帮助它根据结果提供建议。我将BMI结果显示在一个文本视图上,我已将其设置为不可见,但我一直得到操作员的信息,您的开关盒正在测试
v.getId()
值,因此
case ans<15
没有意义,原因如下:

  • 您应该测试
    v.getId()
    ,因为这是您切换所依据的值
  • case子句中不能有比较运算符,只能有单个值
  • ans
    不是
    int
  • 一种可能的解决方案是将条件移动到default子句:

            switch (v.getId()){
                case 15:
                case 16:
                ...
                case 40:
                ...
                default:
                    if (v.getId() < 15)
                        setContentView(R.layout.xml1)
                    else if (v.getId() > 40)
                        setContentView(R.layout.xml8);
                    break;
            }
    
    开关(v.getId()){
    案例15:
    案例16:
    ...
    案例40:
    ...
    违约:
    if(v.getId()<15)
    setContentView(R.layout.xml1)
    else if(v.getId()>40)
    setContentView(R.layout.xml8);
    打破
    }
    

    我不确定在这个switch语句中应该如何使用
    ans
    的值(如果有的话)。也许您打算打开从
    ans
    解析的一些
    int
    值,而不是打开
    v.getId()

    ,如果您想要这样的东西,请尝试在
    switch
    语句中添加
    default
    大小写,然后添加
    if-else
    语句,如下所示:

           default:
               if(v.getId()<15){
                  setContentView(R.layout.xml1);
               }else if(v.getId()>40){
                   setContentView(R.layout.xml8);
               }
           break;
    
    默认值:
    if(v.getId()40){
    setContentView(R.layout.xml8);
    }
    打破
    
    如果没有,为什么不使用
    ?对于
    开关箱
    没有比较运算符。如果你还想了解《失败案例》
    我添加了你建议的行,错误消失了,谢谢。但是由于我不知道的原因,在计算bmi和获得结果时,没有启动新的xml,即使结果显示在textview上,但仍然没有启动新的xml。例如,当textview中的答案小于15时,假定会启动xml1,但不会启动。任何俱乐部启动你的活动我已经这样做了,甚至用android手机打开了应用程序,但是anser在textview中播放,但是没有新的xml启动为什么这么多xml?为什么不只更新视图?添加了该行,错误就消失了。但我的任何xml都不是根据textview上显示的结果启动的。文本视图显示结果,但不启动新的xml。为什么?
           default:
               if(v.getId()<15){
                  setContentView(R.layout.xml1);
               }else if(v.getId()>40){
                   setContentView(R.layout.xml8);
               }
           break;