首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓阅读arrays.xml

安卓阅读arrays.xml
EN

Stack Overflow用户
提问于 2012-02-29 00:08:58
回答 2查看 2.9K关注 0票数 2

我在arrays.xml中存储了一组首选项,如下所示:

代码语言:javascript
复制
<string-array name="firstname">
        <item name="1">Bob</item>
        <item name="6">Kevin</item>
        <item name="3">Peter</item>
        <item name="4">Paul</item>
        <item name="5">Simon</item>
        <item name="2">Matt</item>        
</string-array>

<string-array name="FirstnameValues">
    <item name="1">1</item>
    <item name="2">2</item>
    <item name="3">3</item>
    <item name="4">4</item>
    <item name="5">5</item>
    <item name="6">6</item>
</string-array>

这些用于填充ListPreference。存储在SharedPreferences中的项是项的名称;例如,对于Kevin,存储在SharedPreferences中的项将是6。

代码语言:javascript
复制
prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String Firstname = prefs.getString("namesList", "");

因此,在这里,当为所选项目Kevin选择SharedPreference key namesList时,Firstname会给我6。

我所要做的就是阅读array.xml,这样我就可以将数字6与凯文联系起来。我可以使用getResources().getStringArray(R.array.testArray);,但这只返回一个包含“鲍勃、凯文、彼得、保罗、西蒙、马特”的数组。

它不包括命名值。

你知道我怎样才能得到每一个的名字和物品吗?

EN

回答 2

Stack Overflow用户

发布于 2012-02-29 00:16:09

当您在settings.xml中定义您的首选项时,您可以访问arrays.xml,如下所示(输入错误的应用程序)

代码语言:javascript
复制
        <ListPreference
            android:title="FirstNameValues"
            android:summary="First Names"
            android:key="fistNamePreference"
            android:defaultValue="1"
            android:entries="@array/firstName"
            android:entryValues="@array/fistNameValues" />

在您的activity onCreate中添加

代码语言:javascript
复制
addPreferencesFromResource(R.xml.settings); 

如果你需要更多的澄清,请让我知道。下面是一个例子。Arrays.xml

代码语言:javascript
复制
<string-array name="timeIntervalList">
    <item>5 seconds</item>
    <item>10 seconds</item>
    <item>30 seconds</item>
    <item>1 minute</item>
    <item>5 minutes</item>
    <item>10 minutes</item>
</string-array>

<string-array name="timeIntevalValues">
    <item>5000</item>
    <item>10000</item>
    <item>30000</item>
    <item>60000</item>
    <item>300000</item>
    <item>600000</item>
</string-array>

settings.xml

代码语言:javascript
复制
<ListPreference
            android:title="Retry Interval"
            android:summary="Time interval"
            android:key="retryPeriodPref"
            android:defaultValue="5000"
            android:entries="@array/timeIntervalList"
            android:entryValues="@array/timeIntevalValues" />

onCreate调用中的settingsAcitivty

代码语言:javascript
复制
addPreferencesFromResource(R.xml.settings);

要在其中使用首选项的OtherAcitivity

代码语言:javascript
复制
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getBaseContext());
timerPeriod = Integer.parseInt(prefs.getString("retryPeriodPref", "5000"));
票数 0
EN

Stack Overflow用户

发布于 2012-02-29 00:18:15

我不知道您是否可以直接这样做,但是您总是可以创建一个包装器类,它加载字符串数组,并为任何给定的数组值提供两个值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9485459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档