-1

此函数返回 0.0 尽管所有值都是浮动的并且从共享首选项中正确检索!可能是什么错误?

float BMR(){

    SharedPreferences customSharedPreference = getSharedPreferences(
                "myCustomSharedPrefs", Activity.MODE_PRIVATE);

    String  Weight =customSharedPreference.getString("weightpref", null);
    float weight = Float.valueOf(Weight);

    String  Height = customSharedPreference.getString("heightpref",null);
    float height = Float.valueOf(Height);
    String Age = customSharedPreference.getString("agepref", null);
    float age = Float.valueOf(Age);

    int gender = customSharedPreference.getInt("genderpref", 0);

    Toast.makeText(StatsActivity.this, Age, Toast.LENGTH_LONG).show();
    if ( gender == 0){
        bmr = (float) (10.0 *weight + 6.25 * height - 5.0 * age + 5.0);
    }
    if(gender == 1){
        bmr = (float) (10.0 * weight + 6.25 * height - 5.0 * age- 161.0);
    }

    String bmrtest = String.valueOf(bmr);
    Toast.makeText(StatsActivity.this, "bmr is "+bmrtest, Toast.LENGTH_LONG).show();
    return bmr;
    }
4

1 回答 1

2

如果性别不是 0 或 1,会发生什么?您的 bmr 将保持未分配状态(至 0.0)。

如果这是问题所在,您可以考虑在未来:

  • 在你的 if 后面加上一个 else 子句
  • 将这两个 if 组合成一个 elseif(因为它们是独占的)
  • 至少放入一个断言来检查性别确实是 1 或 0
于 2012-05-06T18:18:34.087 回答