我可以指望“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>
答案 0 :(得分:4)
是的,据我所知,您可以假设项目的顺序每次都相同,这意味着您可以使用单独的xml声明的数组安全地定义键/值对。看看API演示(例如arrays.xml
文件),您会看到Google使用相同的methodoly来指定静态键/值对。更具体地说,您可以从entries_list_preference
和entryvalues_list_preference
中推断出这一点。实际上,如果您考虑一下:提供entries
和entryValues
属性来指向静态资源几乎没有意义。如果他们的订单无法保证,则ListPreference
。
附录:不支持xml中的多维数组。但是,您可以编写自己的xml解析器来处理这些情况,实际上并不像听起来那么难。它可能比你简单地定义两个一维数组需要更多的时间。