use*_*504 14 database resources android gallery drawable
我有一个Android应用程序,它使用一个库组件来选择一个图标并将其分配给一个按钮.
图标集位于res/drawable
文件夹中,可以使用指南的典型适配器在库中访问:
private Integer[] Imgid = {
R.drawable.icon_home,
R.drawable.icon_home2,
...
}
Run Code Online (Sandbox Code Playgroud)
选择一个图标后,我将设置存储在ID为按钮和drawable的数据库中.
所有工作要做,但我发现,如果我需要添加或修改一般我的应用我的图标集或资源,旧的资源的IDS可能会改变,所以在DB偏好指的是错误的图标.
有没有办法强制R类的旧ID,以便它们将来不会改变?或者是否有另一种方法来管理组件厨房的项目与另一个属性而不是ID?(也许是字符串名称和反射?)
提前致谢
小智 20
如果您不打算更改,可以将drawable的名称存储在数据库中.getResourceEntryName
从资源ID返回名称:
Resources resources = getResources();
String name = resources.getResourceEntryName(R.drawable.icon);
Run Code Online (Sandbox Code Playgroud)
您可以从名称中获取资源ID getIdentifier
:
int resId = resources.getIdentifier(name, "drawable", "your.package.name");
Run Code Online (Sandbox Code Playgroud)
您不应该\xe2\x80\x99 依赖R.drawable.*
属性的实际值。
\n改为创建您自己的 ID(例如 1 对应R.drawable.icon_home
2 对应R.drawable.icon_home2
)
编辑:
\n字符串名称和反射也应该起作用,但它\xe2\x80\x99s可能有点过大,你只有几个图标。
归档时间: |
|
查看次数: |
5076 次 |
最近记录: |