3

我有以下代码可以从我的 xml 首选项文件中获取长值,

SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 

long longBreak = Integer.parseInt(getPrefs.getString("breakTime", "8000"));
long shortBreak = Integer.parseInt(getPrefs.getString("breakTime", "5000"));
long workTime = Integer.parseInt(getPrefs.getString("workTime", "10000"));

出于某种原因,我的 LogCat 显示在“SharedPreference getPrefs=....”行出现错误,并且我的 android 应用程序在加载长值之前中断....

我的偏好xml如下,

<ListPreference
    android:entries="@array/workList"
    android:entryValues="@array/workTimes"
    android:key="workTime"
    android:summary="Choose Work Time"
    android:title="Work Time" />
<ListPreference
    android:entries="@array/breakList"
    android:entryValues="@array/breakTimes"
    android:key="breakTime"
    android:summary="Choose Break Time"
    android:title="Break Time" />

我的数组值如下,

<string-array name="workList">
    <item>25 Minutes</item>
    <item>10 Seconds</item>
</string-array>
<string-array name="breakList">
    <item>15 Minutes</item>
    <item> 5 Minutes</item>
    <item>8 Secs</item>
    <item>5 Secs</item>
</string-array>
<string-array name="workTimes">
    <item>1500000</item>
    <item>10000</item>
</string-array>
<string-array name="breakTimes">
    <item>900000</item>
    <item>300000</item>
    <item>8000</item>
    <item>5000</item>
</string-array>

我已经在 diff 应用程序中测试了相同的代码,它工作正常......有什么帮助吗?提前致谢...

4

1 回答 1

8

您可以使用:

 SharedPreferences shared = getSharedPreferences("file_pref", MODE_PRIVATE);
 to get a object of SharedPreferences

要从 SharedPreferences 中获取 Long 值:您应该使用 SharedPreferences 类的 Editor 中的 putLong("key","value") 和 getLong("key","default_value") 来获取您想要的值。前任:

//创建:

SharedPreferences shared = getSharedPreferences("file_pref", MODE_PRIVATE);
Editor edit = shared.edit();
shared.putLong("key1","value1");

//使用:

SharedPreferences shared = getSharedPreferences("file_pref", MODE_PRIVATE);
Long value_long = shared.getLong("key1",0);
//with 0 - default value

您可以查看此链接以了解如何使用 SharedPreferences 类在 Android 中清晰轻松地保存简单信息:

在关闭应用程序之前保存值?

希望它对你有用。

于 2012-04-14T03:11:37.043 回答