从 SQLITE 回收器视图获取图像路径错误
Posted
技术标签:
【中文标题】从 SQLITE 回收器视图获取图像路径错误【英文标题】:Get image path from SQLITE recycler view Error 【发布时间】:2020-09-18 04:05:58 【问题描述】:谁能帮我理解我的错误?
我想要实现的是从 SQLite dB 获取图像路径并插入到回收器视图中。包含所有图像的文件夹将在 res/drawable 中。
在适配器类中,我声明了 Context and is private global
,在 onCreateViewHolder 中,我添加了 context = parent.getContext();
同样在 DBModel 类中,我从位图更改为字符串,在 DB 文件中从 blob 更改为 TEXT。
public void onBindViewHolder(@NonNull DBViewHolder holder, int position)
ModelClass objModelClass = objModelClassArrayList.get(position);
holder.description_sign.setText(objModelClass.getDescription());
//context = holder.image_sign.getContext();
//int resAd = getIdentifier(image_path,"drawable",context.getPackageName());
int i = context.getResources().getIdentifier(objModelClass.getImage(),"drawable",context.getPackageName());
holder.image_sign.setImageResource(i);
//holder.image_sign.setImageBitmap(objModelClass.getImage()); <- It works but i don't want that.
> E/androidRuntime: FATAL EXCEPTION: main
> Process: com.example.dissertation, PID: 5449
> java.lang.NullPointerException: name is null
> at android.content.res.ResourcesImpl.getIdentifier(ResourcesImpl.java:240)
> at android.content.res.Resources.getIdentifier(Resources.java:1927)
【问题讨论】:
【参考方案1】:你能试试这个代码块吗?
String uri = "@drawable/" + objModelClass.getImage();
int imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
Drawable res = context.getResources().getDrawable(imageResource);
holder.image_sign.setImageDrawable(res);
【讨论】:
我已经尝试过了,但我遇到了一个问题,即找不到 getResources(line 2)。 感谢您的帮助,我找到了解决方案。我用你的技术做了一些小的改动【参考方案2】: ModelClass objModelClass = objModelClassArrayList.get(position);
holder.description_sign.setText(objModelClass.getDescription())
String uri = "@drawable/" + objModelClass.getImage();
int imageResource = holder.itemView.getResources().getIdentifier(uri, null, holder.itemView.getContext().getPackageName());
holder.image_sign.setImageResource(imageResource);
它也应该被声明为 Context 为全局并且在 onCreateViewHolder 中引用它 context = parent.getContext();
【讨论】:
以上是关于从 SQLITE 回收器视图获取图像路径错误的主要内容,如果未能解决你的问题,请参考以下文章
如何根据sqlite数据库中的名称从drawable中获取图像,然后在列表视图中显示
在复选框状态更改时从回收器视图适配器更新 sqlite 数据库
Android:我需要拍照并将其存储在 sqlite 数据库中,然后将其填充到回收站视图中
错误 java.sql.SQLException:从数据库中检索 Blob(图像)时 SQLite JDBC 驱动程序未实现