Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-Reading arrays.xml_Android - Fatal编程技术网

Android-Reading arrays.xml

Android-Reading arrays.xml,android,Android,我在arrays.xml中存储了一组首选项,看起来类似于: <string-array name="firstname"> <item name="1">Bob</item> <item name="6">Kevin</item> <item name="3">Peter</item> <item name="4">Paul</it

我在arrays.xml中存储了一组首选项,看起来类似于:

<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>
所以在这里,
Firstname
在为所选项目选择SharedReference键名称列表时会给我6

我要做的就是读取array.xml,这样我就可以将数字6与Kevin联系起来。我可以使用
getResources().getStringArray(R.array.testArray)但这只是返回一个包含“Bob,Kevin,Peter,Paul,Simon,Matt”的数组

它不包括命名的值


您知道如何获取每个项目的名称和项目吗?

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

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

<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>
希望使用首选项的其他活动

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getBaseContext());
timerPeriod = Integer.parseInt(prefs.getString("retryPeriodPref", "5000"));

当您在settings.xml中定义首选项时,您可以按如下方式访问arrays.xml(打字错误的应用程序)

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

<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>
希望使用首选项的其他活动

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getBaseContext());
timerPeriod = Integer.parseInt(prefs.getString("retryPeriodPref", "5000"));

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

嗯,我不知道是否可以直接执行,但是您可以创建一个包装器类,该类加载两个字符串数组,并为任何给定的数组值提供两个值

对不起,我应该说我已经有了,但是谢谢你。我想在某种程度上,我正在尝试独立于SharedReference访问array.xml。我只想得到一个数字,例如3,并能够通过将字符串数组加载到包含名称和值的单独数组中,将其与“Peter”关联起来。我读了几篇关于使用TypedArray的文章,但我认为这不是我应该采用的方式,因为结果要么为null,要么为0。可能使用xml文件存储此数据,或者如果有很多记录,那么可能是sqlite。对不起,我应该提到我已经有了,但谢谢。我想在某种程度上,我正在尝试独立于SharedReference访问array.xml。我只想得到一个数字,例如3,并能够通过将字符串数组加载到包含名称和值的单独数组中,将其与“Peter”关联起来。我读了几篇关于使用TypedArray的文章,但我认为这不是我应该采用的方式,因为结果要么为null,要么为0。可能是使用xml文件存储此数据,或者如果有很多记录,那么可能是sqlite。
<ListPreference
            android:title="Retry Interval"
            android:summary="Time interval"
            android:key="retryPeriodPref"
            android:defaultValue="5000"
            android:entries="@array/timeIntervalList"
            android:entryValues="@array/timeIntevalValues" />
addPreferencesFromResource(R.xml.settings);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getBaseContext());
timerPeriod = Integer.parseInt(prefs.getString("retryPeriodPref", "5000"));