我希望从偏好中获得一个浮动。当用户没有输入任何内容时,此功能正常,但是当输入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:
<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>
当我删除getFloat行时,应用程序不会强制关闭。
答案 0 :(得分:5)
EditTextPreference将其内容存储为String。 Float.parseFloat(String)
可能对您很有用 - 在preferences.getString(..)
之内 - 除非您编写一个自己的FloatPreference,它将文本输入存储为float。
答案 1 :(得分:2)
这个问题可能是相同的:How does one declare the type of an Android preference?。它可能会解决您的问题。