Android:资源修改后可绘制的可变ID

我有一个 Android应用程序,使用图库组件来选择一个图标,并将其分配给一个按钮.
该图标集位于res / drawable文件夹中,并在图库中使用指南的典型适配器进行访问:
private Integer[] Imgid = {
   R.drawable.icon_home,R.drawable.icon_home2,...
}

在图标选择之后,我将设置存储在具有按钮ID和drawable的数据库中.
所有的作品都完成了,但是我注意到,如果我想添加修改我的应用程序的一般图标集或资源,旧资源的ID可能会改变,所以数据库中的首选项是错误的图标.
有没有办法强迫R类的旧身份,以便他们未来不会改变?还有另一种方式来管理组件厨房的项目,而不是id? (可能是字符串名称和反射?)

提前致谢

解决方法

如果不打算改变,可以将数据库名称存储在数据库中. getResourceEntryName从资源id返回名称
Resources resources = getResources();
String name = resources.getResourceEntryName(R.drawable.icon);

您可以使用getIdentifier从名称获取资源ID:

int resId = resources.getIdentifier(name,"drawable","your.package.name");

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...