从SQLITE回收器视图获取图像路径错误

问题描述 投票:0回答:2

有人可以帮助我了解我的错误吗?我想要实现的是从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)
android image sqlite view recycle
2个回答
0
投票
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);

0
投票
还应该将Context声明为全局上下文,并在onCreateViewHolder中将其声明为context = parent.getContext();
© www.soinside.com 2019 - 2024. All rights reserved.