问题描述
我注意到在android developer page for getIdentifier上显示:
我想避免使用它,但是我当前的实现依赖于它。
在我的数据库中,我有数百个预填充的条目,每个条目有3个关联的字符串资源和一个图像。为了通过条目访问资源,我将资源名称作为字符串保存在元组中,然后使用getIdentifier加载它们。
示例代码:
coin = model.getSelectedCoin()!!
binding.topMedia.setimageResource(
resources.getIdentifier(coin.imageAddress,"drawable",requireContext().packageName)
)
binding.descriptionText.text = resources.getString(
resources.getIdentifier(coin.description,"string",requireContext().packageName)
)
这是不好的做法吗?有没有更有效的实现方式,允许我将数据库条目与其资源连接起来?
解决方法
也许您可以在数据库外部设置这些值?创建一个描述您的关卡的对象,并使用其resourceId定义该对象的图像和描述。这些基本上是与UI相关的值,它们根本不应该在数据库中。