在Sqlite数据库中存储图像资源ID并在int数组中检索它

时间:2017-03-24 06:39:38

标签: android sqlite android-sqlite

我正在开发一个在线购物应用程序,我将所有产品详细信息存储在Sqlite数据库中,以及产品图像的资源ID。我正在检索那些ID(例如:R.drawable.image1),以便显示存储在drawable文件夹中的图像。

精确检索id,但发生异常,如“InvalidNumberFormatException:R.drawable.image1”。我已经将所有id存储为sqlite中的VARCHAR。在将这些ID作为字符串值检索后,如何将这些ID存储在int数组中?

我正在使用recyclerview显示这些图像和其他产品详细信息。任何帮助,将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:4)

只需将图像名称存储在数据库中,然后使用下面的代码获取其ID

private void loadImage(String mImageName, ImageView mImageIcon){
int resID = mContext.getResources().getIdentifier(mImageName , "drawable", mContext.getPackageName());
            if(resID!=0) {//The associated resource identifier. Returns 0 if no such resource was found. (0 is not a valid resource ID.)
                mImageIcon.setImageResource(resID);
            }
}