如何将变量fTdee传递到另一个活动?我似乎有问题,因为fTdee是在If-Else语句中声明的,但我认为我实际上并未从If-Else语句外部访问此变量fTdee。

    final float fAF;
    float fTdee;
    String strAF = tvAF.getText().toString();

    if (strAF.matches("OptionA"))

    {
        fAF = 1.20f;
        fTdee = bmr*fAF;
    }
    else if (strAF.matches("OptionB"))
    {
        fAF = 1.375f;
        fTdee = bmr*fAF;
    }
    else if (strAF.matches("OptionC"))
    {
        fAF = 1.55f;
        fTdee = bmr*fAF;
    }
    else if (strAF.matches("OptionD"))
    {
        fAF = 1.725f;
        fTdee = bmr*fAF;
    }
    else if (strAF.matches("OptionE"))
    {
        fAF = 1.90f;
        fTdee = bmr*fAF;
    }

            Intent in2 = new Intent(getApplicationContext(),  CaloriesPage.class);
            in2.putExtra("mTdee",fTdee);
            startActivity(in2);

最佳答案

在语句外声明fTdee。并且不要将它们设为final,这意味着您无法在实例化后修改它们。

float fAF = 0.0f;
String strAF = tvAF.getText().toString();

if (strAF.matches("OptionA")){
    fAF = 1.20f;
}else if (strAF.matches("OptionB")){
    fAF = 1.375f;
}else if (strAF.matches("OptionC")){
    fAF = 1.55f;
}else if (strAF.matches("OptionD")){
    fAF = 1.725f;
}else if (strAF.matches("OptionE")){
    fAF = 1.90f;
}

final float fTdee = bmr*fAF;

Intent in2 = new Intent(getApplicationContext(),  CaloriesPage.class);
in2.putExtra("mTdee",fTdee);
startActivity(in2);


提示:使用更好的var名称

10-04 21:49