android.content.res.Resources $ NotFoundException:资源ID#0x7f07007e

Gau*_*Rai 5 android android-resources onclicklistener recycler-adapter android-recyclerview

我正在尝试在应用程序中实现类似功能,这是回收视图中Viewholder的代码段。

回收站定制适配器

public class PostAdapterViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

TextView title,user,description,tag,time,designation;
Long date;
ImageView imageView,bookmark,profilepic,sharebutton,like;
RelativeLayout head;
LinearLayout content;
DatabaseReference reference;
Context context;
String name;

public void setContext(Context context) {
    this.context = context;
}

public PostAdapterViewHolder (final View itemView) {
    super(itemView);
    itemView.setOnClickListener(this);
    head = (RelativeLayout) itemView.findViewById(R.id.head);
    content = (LinearLayout) itemView.findViewById(R.id.content);
    imageView =(ImageView)itemView.findViewById(R.id.imageview);
    designation = (TextView) itemView.findViewById(R.id.designation);
    like =(ImageView)itemView.findViewById(R.id.like);
    profilepic = (ImageView) itemView.findViewById(R.id.imageView2);
    bookmark =(ImageView)itemView.findViewById(R.id.bookmark);
    title = (TextView) itemView.findViewById(R.id.title);
    description = (TextView) itemView.findViewById(R.id.description);
    time = (TextView) itemView.findViewById(R.id.date);
    tag = (TextView) itemView.findViewById(R.id.tag);
    sharebutton = (ImageView) itemView.findViewById(R.id.sharebutton);
    user = (TextView) itemView.findViewById(R.id.username);

    like.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            ImageView i = (ImageView) itemView.findViewById(R.id.like);
            Drawable a = i.getBackground();

            if (a.getConstantState().equals(context.getDrawable(R.drawable.emptyup).getConstantState())){

                i.setImageDrawable(context.getDrawable(R.drawable.fillup));

            } else {

                i.setImageDrawable(context.getDrawable(R.drawable.emptyup));

            }

        }
    });

  }
} 
Run Code Online (Sandbox Code Playgroud)

}

01-09 10:43:45.747 6602-6602 / ctize.connectplus.com.communitize E / AndroidRuntime:致命例外:主进程:ctize.connectplus.com.communitize,PID:6602 android.content.res.Resources $ NotFoundException: android.content.res.Resources.getValue(Resources.java:1397)的资源ID#0x7f07007e android.content.res.Resources.getDrawable(Resources.java:843)的android.content.Context.getDrawable(Context.java) :458),位于ctize.connectplus.com.communitize.PostAdapterViewHolder $ 2.onClick(PostAdapterViewHolder.java:98),位于android.view.View.performClick(View.java:5226),位于android.view.View $ PerformClick.run(View。的android.os.Handler.handleCallback(Handler.java:739)的java:21350)android.os处的android.os.Handler.dispatchMessage(Handler.java:95)的java.21350)。android.app.ActivityThread.main(ActivityThread.java:5582)的Looper.loop(Looper.java:148)com.android.internal.os.ZygoteInit $的java.lang.reflect.Method.invoke(Native Method)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)上的MethodAndArgsCaller.run(ZygoteInit.java:726)5582)在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)的java.lang.reflect.Method.invoke(本机方法)(在com.android.internal.os.ZygoteInit.main( ZygoteInit.java:616)5582)在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)的java.lang.reflect.Method.invoke(本机方法)(在com.android.internal.os.ZygoteInit.main( ZygoteInit.java:616)Java:616)Java:616)

Nic*_*ens 23

当应该显示相关活动时,您的应用程序崩溃?

检查您的活动中是否有这样的可绘制 v24 在此处输入图片说明

然后,如果是的,从改变你的文件的显示AndroidProject你的文件的层次结构的顶部:从 在此处输入图片说明

在此处输入图片说明

并将目录中的drawable拖放drawable v-24到目录中drawable

就这样。试试看是否正常

编辑:我发现问题可能出现在 Android 6 API 23 上,但不会出现在更高的 API 上

  • 谢谢先生,这解决了我在使用 TabLayout 时遇到的问题。当我将 v24 drawable 移动到另一个文件夹时,它可以正常工作 (2认同)

Uma*_*air 5

通过查看日志。问题出在您的drawable背景中看看。您有键入X24图像更改它,它将解决您的问题。

第二件事是您一次看到两个图像。因此,您需要删除.xml文件中要设置的背景,然后再使用。