我的目标:
创建一个图像库,每个图像都有一个描述,名称,标题,其他可能的misc信息。当用户浏览图库时,将显示图像信息。我计划将数据存储在从数据库填充的地图ArrayList<Map<String, String>>
的arraylist中。该列表将包括图像信息中的资源ID值。
问题:
第一次打开应用程序时,我正在SQLite数据库中保存可绘制的资源ID值。从那时起,我将引用sqlite存储的资源ID值,而不是通过这种R.drawable.drawable_name
方式直接检索资源。我可以保证在安装应用程序后资源ID值永远不会改变吗?
答案 0 :(得分:2)
首次打开应用时,我正在SQLite数据库中保存可绘制的资源ID值。
这是一个坏主意。
我可以保证在安装应用程序后资源ID值永远不会改变吗?
没有。它们会因编译而异。
答案 1 :(得分:2)
Resource IDs are generated when your application is compiled因此在安装应用程序后它们不会更改。
但是,如果您发布新版本的应用程序,资源ID几乎肯定会发生变化。因此,您需要检测升级并重建数据库,或者不要以这种方式访问资源。
如果您通过将资源ID放入数据库来说明您要解决的问题,那么有人可能会给您一个不那么脆弱的解决方案。
答案 2 :(得分:-1)
是
如果您打开R.java
,您会注意到每个属性都定义为public static final
。