Android的动态数组列表preference [英] Android Dynamic Array ListPreference

查看:541
本文介绍了Android的动态数组列表preference的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何创建动态数组对于目录preference从Java端。

我不使用下面的XML。

 < XML版本=1.0编码=UTF-8&GT?;
<资源>
<字符串数组名=listArray>
 <项目>价值1< /项目>
 <项目>价值2'; /项目>
<项目>价值3'; /项目>
< /字符串数组>

<字符串数组名=listValues​​>
 <项目> 1< /项目>
 <项目> 2'; /项目>
 <项目>第3版; /项目>
< /字符串数组>
< /资源>
 

解决方案

将preferences.xml在RES / XML

 < XML版本=1.0编码=UTF-8&GT?;
< preferenceScreen的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android>

    < preferenceCategory机器人:标题=有些标题是>

        <表preference安卓键=default_category
            机器人:标题=动态类机器人:总结=动态分类汇总
            安卓:设置defaultValue =0/>
    < / preferenceCategory>
< / preferenceScreen>
 

在你的活动,扩展了preferenceActivity你做这样的事情中的onCreate()。

 目录preference列表preferenceCategory =(名单preference)找到preference(default_category);
如果(名单preferenceCategory!= NULL){
    ArrayList的<类别>所属分类= getCategories();
    CharSequence的条目[] =新的String [categoryList.size()];
    CharSequence的entryValues​​ [] =新的String [categoryList.size()];
    INT I = 0;
    对于(类别分类:所属分类){
        项[I] = category.getCategoryName();
        entryValues​​ [I] = Integer.toString(ⅰ);
        我++;
    }
    名单preferenceCategory.setEntries(项);
    名单preferenceCategory.setEntryValues​​(entryValues​​);
}
 

How to Create Dynamic Array For ListPreference From Java Side.

I Don't use Below 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>

解决方案

Place preferences.xml in 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>

In your activity that extends PreferenceActivity you do something like this in 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);
}

这篇关于Android的动态数组列表preference的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆