方法getFloat()
用于从android的SharedPreferences
API中提取浮点值。然而,在xml中,EditTextPreference
始终存储字符串值,即使已定义数字。
可以预期getFloat()
会自动返回此内容,但会引发ClassCastException
,我们必须使用Float.parseFloat(SharedPreferences.getString())
来获取此值。
getFloat()
确实没有用,或者我在这里遗漏了什么?
答案 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);