令牌“boolean”上的语法错误,表达式无效

时间:2014-01-07 17:21:34

标签: java android adt

- 我遇到"令牌上的语法错误" boolean",无效的表达式" if / else部分或下面的代码中的错误。我在所有" else / if"上得到这个错误3次线。

- 我得到的另一个错误是在最后一个"否则"我必须插入&#34 ;;"在没有解决任何问题的陈述之后。

package com.dey2929.bmihealth;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;

public class ResultActivity extends Activity {
TextView result;
TextView review;
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_result);
    result = (TextView) findViewById(R.id.tvmybmi);
    review = (TextView) findViewById(R.id.review);
     Intent intent = getIntent();
     String YourBmi = intent.getStringExtra("YourBmi");
     result.setText(" Your BMI is: " + YourBmi);
      if (boolean.valueof(YourBmi) <= 18.0)
      {
          review.setText("You are Underweight ");

      }
      else if ((boolean.valueof(YourBmi) > 18.0 && boolean.valueof(YourBmi) < 25.0 ))
      {
          review.setText("You are Normal (healthy weight) ");
      }
      else ((boolean.valueof(YourBmi)) > 25.0)
      {
          review.setText("You are Overweight");
      }


}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.result, menu);
    return true;
}
@Override
protected void onPause() {
    super.onPause();
    finish();
}

}

更新:

编辑 - 仅在最后一个其他行中出现错误,即

  
      
  • 作业的左侧必须是变量    - 语法错误,插入&#34;;&#34;完成声明   
        
    • 插入赋值运算符表达式以完成赋值。
    •   
  •   

修改后的代码:

package com.dey2929.bmihealth;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;

public class ResultActivity extends Activity {
TextView result;
TextView review;
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_result);
    result = (TextView) findViewById(R.id.tvmybmi);
    review = (TextView) findViewById(R.id.review);
     Intent intent = getIntent();
     String YourBmi = intent.getStringExtra("YourBmi");
     result.setText(" Your BMI is: " + YourBmi);
      if (Float.parseFloat(YourBmi) <= 18.0)
      {
          review.setText("You are Underweight ");

      }
      else if ((Float.parseFloat(YourBmi) > 18.0 && Float.parseFloat(YourBmi) < 25.0 ))
      {
          review.setText("You are Normal (healthy weight) ");
      }
      else (Float.parseFloat(YourBmi) > 25.0)
      {
          review.setText("You are Overweight");
      }


}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.result, menu);
    return true;
}
@Override
protected void onPause() {
    super.onPause();
    finish();
}

}

4 个答案:

答案 0 :(得分:5)

以下无效

  if (boolean.valueof(YourBmi) <= 18.0)

将其更改为

  if (Float.parseFloat(YourBmi) <= 18.0)

我认为YourBmi将包含String格式

中的浮点数

答案 1 :(得分:2)

boolean不是一个类,你不能在其上调用方法(如.valueOf)。查看Boolean;请注意首都B。

答案 2 :(得分:1)

假设您的“YourBmi”具有双倍值,请进行此更改:

已编辑:我更改了其他代码。它有很多括号,如果是最后一个,还要添加另一个。

  if (Double.valueOf(YourBmi) <= 18.0)
  {
      review.setText("You are Underweight ");

  }
  else if (Double.valueOf(YourBmi) > 18.0 && Double.valueOf(YourBmi) < 25.0 )
  {
      review.setText("You are Normal (healthy weight) ");
  }
  else if(Double.valueOf(YourBmi) > 25.0)
  {
      review.setText("You are Overweight");
  }

答案 3 :(得分:1)

你已经有了一个答案,为什么这不能编译,但你可以直接通过你的意图传递一个双重简化你的生活。

如果从EditText获取此值,请在第一个活动中将其解析为double,这将避免您在第二个活动中完成所有这些操作:

Intent i = new Intent(firstActivity.this, ResultActivity.class);
i.putExtra("doubleValue", 17.0);
startActivity(i);

然后就这样做:

double d = getIntent().getDoubleExtra("doubleValue", 0.0);

这将避免您将String解析为float,并简化您与简单if(d <= 16.0)等的比较。