我有一些列表首选项,但我不知道如何从列表中保存单个值。我该怎么做?这就是我所拥有的
http://i41.tinypic.com/dh4gvo.png
Preference customPref = (Preference) findPreference("notificationPref");
customPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
SharedPreferences customSharedPreference = getSharedPreferences(
"notifications", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = customSharedPreference
.edit();
editor.putString("notification",
"The preference has been clicked");
editor.commit();
return true;
}
});
我的列表单击侦听器仅适用于列表首选项页面中的主项目,但不适用于弹出窗口中的项目。如何保存弹出窗口中选择的选项?
答案 0 :(得分:4)
这通常是自动的。在您的首选项屏幕XML中,您应该具有以下内容:
<ListPreference android:title="@string/Title"
android:summary="@string/Summary"
android:key="PreferenceKey"
android:defaultValue="VALUE_2"
android:entries="@array/Entries"
android:entryValues="@array/Values" />
在你的strings.xml中:
<string name="Value1">Text for value 1</string>
<string name="Value2">Text for value 2</string>
<string name="Value3">Text for value 3</string>
<string-array name="Entries">
<item>@string/Value1</item>
<item>@string/Value2</item>
<item>@string/Value2</item>
</string-array>
<string-array name="Values">
<item>VALUE_1</item>
<item>VALUE_2</item>
<item>VALUE_3</item>
</string-array>
“Values”数组指定首选项中保存的(字符串)值,而“Entries”数组指定显示给用户的项目的文本。每次用户选择一个项目时,“Values”数组中的相应值将保存到指定键下的首选项(本例中为“PreferenceKey”)。
答案 1 :(得分:2)
你可以阅读这样的偏好......
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
String strSavedMem1 = sharedPreferences.getString("key", "Default Value");