“strings.xml”字符串数组是否总是以相同的顺序解析/反序列化?

时间:2012-04-06 04:50:32

标签: android xml deserialization arrays android-resources

我可以指望“strings.xml”资源文件中的字符串数组按照 每次 的相同顺序进行解析/反序列化吗?

如果有人能引用任何明确说明此保证的文件,我会很感激。或者,至少,提供有关此主题的大量经验。

此外,这是最佳做法还是我错过了一个更简单的解决方案?

注意:这将是一个小列表,所以我不打算实现更复杂的数据库或自定义XML解决方案,除非我绝对必须这样做。

<!--KEYS (ALWAYS CORRESPONDS TO LIST BELOW ??)-->
<string-array name="keys">
    <item>1</item>
    <item>2</item>
    <item>3</item>
</string-array>

<!--VALUES (ALWAYS CORRESPONDS TO LIST ABOVE ??)-->
<string-array name="values">
    <item>one</item>
    <item>two</item>
    <item>three</item>
</string-array>

1 个答案:

答案 0 :(得分:4)

是的,据我所知,您可以假设项目的顺序每次都相同,这意味着您可以使用单独的xml声明的数组安全地定义键/值对。看看API演示(例如arrays.xml文件),您会看到Google使用相同的methodoly来指定静态键/值对。更具体地说,您可以从entries_list_preferenceentryvalues_list_preference中推断出这一点。实际上,如果您考虑一下:提供entriesentryValues属性来指向静态资源几乎没有意义。如果他们的订单无法保证,则ListPreference

附录:不支持xml中的多维数组。但是,您可以编写自己的xml解析器来处理这些情况,实际上并不像听起来那么难。它可能比你简单地定义两个一维数组需要更多的时间。