Android-Reading arrays.xml
我在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
<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"));