android.content.res.Resources$NotFoundException: 资源 ID #0x7f07007e
android.content.res.Resources$NotFoundException: Resource ID #0x7f07007e
我正在尝试在应用中实现类似的功能,这里是回收视图中 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));
}
}
});
}
}
}
01-09 10:43:45.747 6602-6602/ctize.connectplus.com.communitize E/AndroidRuntime: FATAL EXCEPTION: main
Process: ctize.connectplus.com.communitize, PID: 6602
android.content.res.Resources$NotFoundException: Resource ID #0x7f07007e
at android.content.res.Resources.getValue(Resources.java:1397)
at android.content.res.Resources.getDrawable(Resources.java:843)
at android.content.Context.getDrawable(Context.java:458)
at ctize.connectplus.com.communitize.PostAdapterViewHolder.onClick(PostAdapterViewHolder.java:98)
at android.view.View.performClick(View.java:5226)
at android.view.View$PerformClick.run(View.java:21350)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5582)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
请尝试干净构建,可能是 R 文件有误
您正在使用 context.getDrawable(R.drawable.fillup)
,它只能在高于 LOLLIPOP 的版本中使用。使用 context.getResources().getDrawable(R.drawable.fillup)
从资源中获取图像。
通过查看日志。问题出在你的 drawable
后台看看吧。您已键入 X24
图片更改它,它将解决您的问题。
其次,您一次看到两张图片。因此,您需要删除在 .xml
文件中设置的背景,这样就可以了。
<CheckBox android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="new checkbox"
android:background="@drawable/checkbox_background"
android:button="@drawable/checkbox" />
尝试使用复选框而不是 ImageView
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_focused="true"
android:drawable="@drawable/fillup" />
<item android:state_checked="false" android:state_focused="true"
android:drawable="@drawable/emptyup" />
<item android:state_checked="false"
android:drawable="@drawable/emptyup" />
<item android:state_checked="true"
android:drawable="@drawable/fillup" />
</selector>
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));
}
由于您的 android 版本问题,这些行给您带来了错误。
关注这个https://developer.android.com/guide/topics/graphics/vector-drawable-resources.html#vector-drawables-backward-solution,
您应该使用 setImageResource() 而不是 setImageDrawable()
您的应用程序在应显示 activity 相关内容时崩溃?
检查你 activity 中是否有这样的可绘制 v24
然后,如果是,请将文件显示从 Android
更改为文件层次结构最顶端的 Project
:
从
到
并将目录drawable v-24
中的drawable拖放到目录drawable
.
就是这样。可以试试
编辑:我发现问题可能出现在 Android 6 API 23 而不是更高 API
检查drawable资源图片是否在drawable文件夹,不 drawable-24 .
我已经遇到了这个问题,但通过将图像资源移动到 drawable 文件夹来解决它。
我正在尝试在应用中实现类似的功能,这里是回收视图中 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));
}
}
});
}
}
}
01-09 10:43:45.747 6602-6602/ctize.connectplus.com.communitize E/AndroidRuntime: FATAL EXCEPTION: main Process: ctize.connectplus.com.communitize, PID: 6602 android.content.res.Resources$NotFoundException: Resource ID #0x7f07007e at android.content.res.Resources.getValue(Resources.java:1397) at android.content.res.Resources.getDrawable(Resources.java:843) at android.content.Context.getDrawable(Context.java:458) at ctize.connectplus.com.communitize.PostAdapterViewHolder.onClick(PostAdapterViewHolder.java:98) at android.view.View.performClick(View.java:5226) at android.view.View$PerformClick.run(View.java:21350) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5582) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
请尝试干净构建,可能是 R 文件有误
您正在使用 context.getDrawable(R.drawable.fillup)
,它只能在高于 LOLLIPOP 的版本中使用。使用 context.getResources().getDrawable(R.drawable.fillup)
从资源中获取图像。
通过查看日志。问题出在你的 drawable
后台看看吧。您已键入 X24
图片更改它,它将解决您的问题。
其次,您一次看到两张图片。因此,您需要删除在 .xml
文件中设置的背景,这样就可以了。
<CheckBox android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="new checkbox"
android:background="@drawable/checkbox_background"
android:button="@drawable/checkbox" />
尝试使用复选框而不是 ImageView
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_focused="true"
android:drawable="@drawable/fillup" />
<item android:state_checked="false" android:state_focused="true"
android:drawable="@drawable/emptyup" />
<item android:state_checked="false"
android:drawable="@drawable/emptyup" />
<item android:state_checked="true"
android:drawable="@drawable/fillup" />
</selector>
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)); }
由于您的 android 版本问题,这些行给您带来了错误。
关注这个https://developer.android.com/guide/topics/graphics/vector-drawable-resources.html#vector-drawables-backward-solution, 您应该使用 setImageResource() 而不是 setImageDrawable()
您的应用程序在应显示 activity 相关内容时崩溃?
检查你 activity 中是否有这样的可绘制 v24
然后,如果是,请将文件显示从 Android
更改为文件层次结构最顶端的 Project
:
从
到
并将目录drawable v-24
中的drawable拖放到目录drawable
.
就是这样。可以试试
编辑:我发现问题可能出现在 Android 6 API 23 而不是更高 API
检查drawable资源图片是否在drawable文件夹,不 drawable-24 .
我已经遇到了这个问题,但通过将图像资源移动到 drawable 文件夹来解决它。