sqlite 如何修复不鼓励使用getIdentifier,因为资源反射使执行构建优化变得更加困难?

pbpqsu0x  于 2023-10-23  发布在  SQLite
关注(0)|答案(1)|浏览(147)

我使用sqlite I'm my app来存储和检索名字和图片。我使用下面的代码来获取要在屏幕视图中显示的图像的名称。

int resID = getResources().getIdentifier(iconName, "drawable", getPackageName());

在这里我得到这个警告

getIdentifier is discouraged because resource reflection makes it harder to perform build optimizations

这个的替代品是什么?
在此之前,我使用图像ID而不是图像名称将其存储在sqlite中,但如果我在项目重新编译后立即从drawable中添加或删除图像,则会出现问题。所以,我发现最好使用图像名称而不是图像ID来存储图像。

swvgeqrz

swvgeqrz1#

这个的替代品是什么?
维护一个Map<String, Int>,将数据库中的标识符Map到R.drawable内容。这样做的附加价值是,允许您重命名可绘制资源,而不会影响存储在数据库中的标识符。

相关问题