有人可以帮助我了解我的错误吗?我想要实现的是从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)
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);