Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SharedReferences getFloat返回ClassCastException并强制关闭_Android_Sharedpreferences - Fatal编程技术网

Android SharedReferences getFloat返回ClassCastException并强制关闭

Android SharedReferences getFloat返回ClassCastException并强制关闭,android,sharedpreferences,Android,Sharedpreferences,我想从首选项中获取一个浮动。当用户未输入任何内容时,此功能正常工作,但在框中输入8.23并保存时,应用程序会在下一次启动时崩溃 MainActivity.java: float hourly_rate; SharedPreferences userdata; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(

我想从首选项中获取一个浮动。当用户未输入任何内容时,此功能正常工作,但在框中输入8.23并保存时,应用程序会在下一次启动时崩溃

MainActivity.java:

float hourly_rate;
SharedPreferences userdata;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    userdata = PreferenceManager.getDefaultSharedPreferences(this);
    hourly_rate = userdata.getFloat("hourly_rate", 0.0f);
}
Preferences.xml:



当我删除getFloat行时,应用程序不会强制关闭。

这个问题可能是相同的:。它可能会解决您的问题。

EditTextPreference将其内容存储为字符串
Float.parseFloat(String)
可能对您很有用-在
preferences.getString(…)
中-除非您编写自己的FloatPreference,将文本输入存储为Float。

您的logcat的输出是什么?出现什么错误?EditTextPreference将其内容存储为字符串
Float.parseFloat(String)
可能对您很有用-除非您编写自己的
FloatPreference
将文本输入存储为Float。
hourly_rate=Float.parseFloat(userdata.getString(“hourly_rate”,“0”)
修复了这个问题,但是这样做不就不必要了吗?或者,可能只是在你设置代码中的值时才用于私有(用户看不见)首选项。是的,这是一个重复的问题。事实上,harism是比你更早为我解决这个问题的人,但是这个链接也会为我解决这个问题。究竟为什么存储原始类型作为首选项不是一个标准功能?
<PreferenceCategory
    android:title="@string/general_preferences_title">
    <EditTextPreference
        android:inputType="numberDecimal"
        android:key="hourly_rate"
        android:title="@string/hourly_rate_title"
        android:summary="@string/hourly_rate_summary" />
</PreferenceCategory>