我觉得我一直在寻找每一个地方而没有找到答案。
我有一个列表首选项
<ListPreference
android:key="signedUpCompetetion"
android:entries="@array/listArray"
android:entryValues="@array/listValues"
/>
使用以下条目和entryValues:
<resources>
<string-array name="listArray">
<item></item>
<item></item>
<item></item>
</string-array>
<string-array name="listValues">
<item></item>
<item></item>
<item></item>
</string-array>
</resources>
所以说在我的一项活动中,我想在列表中添加一些内容。
以下是一次尝试,但它似乎无效:
this.appPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
this.prefEditor = appPrefs.edit();
ListPreference list = (ListPreference) getSharedPreferences("signedUpCompetetion", MODE_PRIVATE);
list.setEntries("This is a test");
任何人都能告诉我如何添加到列表首选项中吗?
更新 通过它的外观,这似乎工作
PreferenceScreen root = this.getPreferenceScreen();
ListPreference list = (ListPreference) root.findPreference("signedUpCompetetion");
CharSequence[] entries = { "One", "Two", "Three" };
CharSequence[] entryValues = { "1", "2", "3" };
list.setEntries(entries);
list.setEntryValues(entryValues);
然而有一个问题!如果我重新启动应用程序,则不会保留列表。这意味着列表是空的!
答案 0 :(得分:2)
使用setEntries(int)
和setEntryValues(int)
list.setEntries(R.array.listArray);
list.setEntryValues(R.array.listValues);
有关如何保留数据的更新:
您可以将数据保留在several ways中,最简单的方法是调用setPersistent(true)
:
list.setPersistent(true);