Android 动态数组列表首选项

2024-01-11

如何从 Java 端为 ListPreference 创建动态数组。

我不使用下面的 Xml 。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="listArray">
 <item>Value 1</item>
 <item>Value 2</item>
<item>Value 3</item>
</string-array>

<string-array name="listValues">
 <item>1</item>
 <item>2</item>
 <item>3</item>
</string-array>
</resources>

将preferences.xml放在res/xml中

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory android:title="Some title">     

        <ListPreference android:key="default_category"
            android:title="Dynamic categories" android:summary="Dynamic categories summary"
            android:defaultValue="0" />
    </PreferenceCategory>
</PreferenceScreen>

在扩展 PreferenceActivity 的活动中,您可以在 onCreate() 中执行类似的操作。

ListPreference listPreferenceCategory = (ListPreference) findPreference("default_category");
if (listPreferenceCategory != null) {
    ArrayList<Category> categoryList = getCategories();
    CharSequence entries[] = new String[categoryList.size()];
    CharSequence entryValues[] = new String[categoryList.size()];
    int i = 0;
    for (Category category : categoryList) {
        entries[i] = category.getCategoryName();
        entryValues[i] = Integer.toString(i);
        i++;
    }
    listPreferenceCategory.setEntries(entries);
    listPreferenceCategory.setEntryValues(entryValues);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 动态数组列表首选项 的相关文章

随机推荐