【发布时间】:2018-06-18 02:32:24
【问题描述】:
我正在尝试在应用程序中实现类似的功能,这是回收视图中 Viewholder 的 sn-p。
回收站自定义适配器
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: 致命异常: main 进程:ctize.connectplus.com.communitize,PID:6602 android.content.res.Resources$NotFoundException:资源 ID #0x7f07007e 在 android.content.res.Resources.getValue(Resources.java:1397) 在 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.java:21350) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5582) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
【问题讨论】:
-
共享整个代码...
-
发布您的错误日志
-
从您的日志看来问题出在可绘制对象上。
-
public class Example extends RecyclerView.Adapter
{ } // 实现所有覆盖函数并执行 onCreateViewHolder 查找布局和 onBindViewHolder 分配所有值并创建扩展 RecyclerView.ViewHolder 的内部类和在那个实现它的方法,在那个地方你找到所有的 id`s。 -
@GauravRai 我相信您还在 xml 文件中将背景可绘制设置为您的 imageView。检查那里,如果没有,则清理并重建您的项目并再次运行。
标签: android onclicklistener android-resources android-recyclerview