Android应用程序:将内容数据放入资源还是使用类?
我正在创建我的第一个android应用程序,其中有一个包含3个不同列表的ViewPager。因此,用户可以在3个列表之间滑动。列表本身是使用arrayAdapter填充的,当前我的数组是在strings.xml中定义的,如下所示:Android应用程序:将内容数据放入资源还是使用类?,android,arrays,Android,Arrays,我正在创建我的第一个android应用程序,其中有一个包含3个不同列表的ViewPager。因此,用户可以在3个列表之间滑动。列表本身是使用arrayAdapter填充的,当前我的数组是在strings.xml中定义的,如下所示: <string-array name="first_array"> <item>item1</item> <item>item2</item> <item>item3<
<string-array name="first_array">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string-array name="second_array">
...
然而,这并不好,因为如果我决定删除/添加/编辑列表的名称,我将不得不回到这里,在这里反映更改,引入强耦合
因此,我正在考虑创建一个java类来保存数组,而不是在res/strings.xml中,在这种情况下,所有的耦合都可以消失,但我不确定将资源放在java类而不是res/中是否是一个好的做法,以防您在市场上寻找快速的“n”脏解决方案,为什么不将数组名保存在另一个数组中,并在运行时查找它们
<string-array name="array1">
...
</string-array>
<string-array name="array2>
...
</string-array>
<string-array name="arrays">
<item>array1</item>
<item>array2</item>
</string-array>
这不是一个干净的解决方案,但您只需要维护字符串资源。在添加/删除/重命名数组时,不必更改代码,但在决定重命名命名数组时,您仍需要触摸它。使用res/strings.xml的优点之一是可以轻松地执行i18n-请参见:您能否举例说明引入新类将如何减少耦合?该类与XML文件有何不同?
<string-array name="array1">
...
</string-array>
<string-array name="array2>
...
</string-array>
<string-array name="arrays">
<item>array1</item>
<item>array2</item>
</string-array>
getResources().getIdentifier()