我有以下代码从我的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>
我在差异应用程序中测试了相同的代码,它运行正常....任何帮助?提前谢谢......
答案 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?
希望它对你有用。