所以,我试图找出将许多数据类型组合在一起的最佳方法.在我的代码内部,我正在创建一个类.在外部,我希望有一个地方可以管理以下类型的数据,或者至少指向所述数据的指针.请注意,这些数据有很多组,我预计随着时间的推移会增加更多.
编辑:我正在大规模简化曾经在这里的事情.
成像,在编译时,我有一个对象列表.每个对象都有一些特征,所有对象都有共同之处.这些包括:
>一个imageImage
>一些字符串
>一个整数数组
>一个字符串数组
我想找到一种方法将所有这些存储在任何代码之外.理想情况下,我想使用XML,模糊地看起来像这样:
<storage_type> <image resid="@id/image1" /> <name>Item_Name1</name> </storage_type> <storage_type> <image resid="@id/image2" /> <name>Item_Name2</name> </storage_type>
图像当前存储为资源变量.我只是不确定如何将图像引用放入XML文件中.
如果可以找到更好的解决方案,我与XML文件的想法没有结合.我想要的只是一个访问这些信息的单一数据库.
除非我提交新的更新,否则不应更改此数据.这些不需要在运行时更新,但我肯定希望在构建之间不时更新它们.我听说过可能有用的偏好设置,但我不确定它们是否可能以某种方式用户可更新.
解决方法
在
this question的帮助下,我能够找到解决方案.
>我的数据存储在XML数组中.
>此数据包含一个数组索引,该索引指向在正常资源下维护的图像阵列.
我的数据存储文件如下所示:
<storage_type> <image imageArrayIndex="1" /> <name>Item_Name1</name> </storage_type> <storage_type> <image imageArrayIndex="2" /> <name>Item_Name2</name> </storage_type>
<resources> <string-array name="images"> <item>@drawable/default</item> <item>@drawable/image1</item> <item>@drawable/image2</item> </string-array> </resources>
TypedArray imgs = context.getResources().obtainTypedArray(R.array.achievement_images); //Whole bunch of code to parse XML,eventually coming to this line: else if (name.equals("image")) { imageRes=imgs.getResourceId(xpp.getAttributeIntValue(null,"imageArrayIndex",0),-1); }
或者,我可以简单地存储图像的名称,如下所示:
<storage_type> <image resid="image1" /> <name>Item_Name1</name> </storage_type> <storage_type> <image resid="image2" /> <name>Item_Name2</name> </storage_type>
int resid=Context.getResources().getIdentifier (name_string_Image,"drawable",null);