0

我觉得我一直在到处寻找,却没有找到答案。

我有一个列表偏好

     <ListPreference
            android:key="signedUpCompetetion"
            android:entries="@array/listArray"
             android:entryValues="@array/listValues"
                />

使用以下条目和条目值:

    <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);

但是有1个问题!如果我重新启动应用程序,则不会保留列表。这意味着列表是空的!

4

1 回答 1

2

使用setEntries(int)setEntryValues(int)

    list.setEntries(R.array.listArray);
    list.setEntryValues(R.array.listValues);

更新如何持久化数据:

您可以通过多种方式保存数据,最简单的一种是调用setPersistent(true)

    list.setPersistent(true);
于 2013-05-25T22:39:32.213 回答