如何在首选项设置中从共享首选项中获取Long()

时间:2012-04-14 01:48:22

标签: android xml android-preferences

我有以下代码从我的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>

我在差异应用程序中测试了相同的代码,它运行正常....任何帮助?提前谢谢......

1 个答案:

答案 0 :(得分:6)

您可以使用:

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

要从SharedPreferences获取Long值:您应该使用SharedPreferences类的编辑器中的putLong(“key”,“value”)和getLong(“key”,“default_value”)来获取所需的值。 E.x:

//创建:

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中保存简单信息:

Save values before close the app?

希望它对你有用。