SharedPreferences.getFloat()的重点是什么

时间:2014-06-22 21:15:06

标签: android sharedpreferences android-preferences

方法getFloat()用于从android的SharedPreferences API中提取浮点值。然而,在xml中,EditTextPreference始终存储字符串值,即使已定义数字。

可以预期getFloat()会自动返回此内容,但会引发ClassCastException,我们必须使用Float.parseFloat(SharedPreferences.getString())来获取此值。

getFloat()确实没有用,或者我在这里遗漏了什么?

1 个答案:

答案 0 :(得分:6)

  

方法getFloat()用于从android的SharedPreferences API中提取浮点值。

  

然而,在xml中,EditTextPreference始终存储字符串值,即使已定义数字。

我认为你在这里混淆了一些东西。您将SharedPreferences设置为等于PreferenceScreen上的元素。

PreferenceScreen's将所有值保存到SharedPreferences中,EditTextPreferences无法保存浮动,但您可以将浮动保存到您的SharedPreferences你自己:

SharedPreferences prefs = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putFloat("aFloat", 1.2f);
editor.commit();

然后像这样检索浮点数:

float someFloat = prefs.getFloat("aFloat", 0.0f);