1

我可以指望“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>
4

1 回答 1

4

是的,据我所知,您可以假设项目的顺序每次都相同,这意味着您可以使用单独的 xml 声明的数组安全地定义键/值对。查看 API 演示(例如arrays.xml文件),您会发现 Google 使用相同的方法来指定静态键/值对。更具体地说,您将能够从entries_list_preference和中推断出这一点entryvalues_list_preference。实际上,如果您考虑一下:如果不能保证它们的顺序,那么提供指向静态资源的属性entries和属性几乎没有意义。entryValuesListPreference

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

于 2012-04-06T05:26:08.533 回答