最近我遇到的问题非常类似于此处:Convert String containing an ID into an Integer-ID。
简而言之,我将资源标识符格式化为:R.drawable.picture
,并希望将它们转换为整数值,以便它们可以存储在数组中,并通过构建应用程序布局的方法进行访问。
但是,根据用户提供的线索无法解决我的问题,我总是得到格式不正确的数据。
答案 0 :(得分:1)
寻找解决方案,我来到了下面描述的那个。
详细说明:
R.drawable.chopin
而不是简单chopin
- 有时您可能会忘记资源背后隐藏的内容:它是图片还是它指向的字符串?保留完整的标识符不会让你忘记这些的类型,text
值),然后解析为整数标识符。首先,必须定义上下文:
public DBAdapter(Context context) {
this.context = context;
dbHelper = new dbHelper();
}
由于我有上下文,我可以解析字符串:
int composerPicture = context.getResources().
getIdentifier(composerPictureId.substring(11), "drawable",
context.getPackageName());
和
int composerName = context.getResources().
getIdentifier(composerNameAddress.substring(9), "string",
context.getPackageName());
使用substring()
方法注意我们切断的字符数量。当ID以R.drawable.
开头时,我们有11个字符,并且必须切断此值。如果有R.string.
,那么我们只会切断9个字符。这样我们最终得到了我们资源的纯名称(在这种情况下是drawable或string)。方法分配ID,我们有一个整数。之后,我们可以将其存储在ArrayList<Integer>
或其他任何地方。