この関数は、すべての値が浮動小数点であり、共有プリファレンスから正しく取得されますが、0.0を返します。何がエラーになる可能性がありますか?浮動小数点から取得される値は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;
}
デバッガでコードをステップ実行しようとしましたか?この関数は実際にはどこにでも 'bmr'という名前の変数を宣言しません。 –
コードをデバッグし、性別、体重、身長、年齢の値をbmrの計算行に入力する必要があります。 – dbf
私は共有のprefsの内容を見るためにトーストを使用していますが、私は正しい値をsharedprefsに格納しています。 – callback