Android动态数组ListPreference

问题描述

| 如何从Java端为ListPreference创建动态数组。 我不使用Under 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);
}
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...