使用 ArrayList 创建 MultiSelectedListPreference

Create MultiSelectedListPreference using ArrayList

我正在尝试创建 PreferenceActicity。 我需要我的偏好类型为 MultiSelectedListPreference.

我在网上找到这段代码:

<MultiSelectListPreference
    android:dialogTitle="@string/mode_repeat"
    android:key="mode_repeat"
    android:summary=""        
    android:title="@string/mode_repeat"
    android:entries="@array/weekdays"
    android:entryValues="@array/weekdays_values"
    android:defaultValue="@array/empty_array"
    />

问题是我在运行时获取条目和 entryValues。 我正在构建 ArrayList,而我的应用程序是 运行,问题是如何将我的 ArrayList 设置为条目和 entryValues?

我是否需要创建一个空的 xml 文件,我将在构建列表期间重新编写该文件?

您将无法在运行时更改 xml。您的问题的解决方案是使用 setEntries()setEntryValues() 来自 MultiSelectListPreference class.

的方法

这是一个基本代码片段:

MultiSelectListPreference repeatModePreference = (MultiSelectListPreference) findPreference(Constants. mode_repeat);
repeatModePreference.setEntries(yourEntries); // This is human-readable strings
repeatModePreference.setEntryValues(yourEntryvalues) // The value corresponding to the human-readable string

希望对您有所帮助。