为了账号安全,请及时绑定邮箱和手机立即绑定

从适配器向活动添加功能时遇到问题

从适配器向活动添加功能时遇到问题

心有法竹 2022-04-28 16:42:00
我正在尝试将点击监听器添加到在适配器类中创建的图像持有者以及我正在使用 .this 关键字遵循的教程,但我需要引用适配器类中的活动?我将附上屏幕截图以使其更清晰Toast.makeText(JudgeActivity.this, post_key, Toast.LENGTH_LONG).show();这是导致错误的行,(JudgeActivity.this 不是封闭类)public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder> {private Context mContext;private List<UploadClass> mUploads;public ImageAdapter(Context context, List<UploadClass> uploads){    mContext = context;    mUploads = uploads;}@Overridepublic  ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {    View v = LayoutInflater.from(mContext).inflate(R.layout.image_item, parent, false);    return new ImageViewHolder(v);}@Overridepublic void onBindViewHolder(ImageViewHolder holder, int position) {    final String post_key = mUploads.get(position).toString();    UploadClass uploadCurrent = mUploads.get(position);    holder.textViewName.setText(uploadCurrent.getName());    Picasso.with(mContext)            .load(uploadCurrent.getImageUrl())            .placeholder(R.mipmap.ic_launcher)            .fit()            .centerCrop()            .into(holder.imageView);    holder.imageView.setOnClickListener(new View.OnClickListener(){        @Override        public void onClick(View v){            Toast.makeText(JudgeActivity.this, post_key, Toast.LENGTH_LONG).show();        }    });}
查看完整描述

1 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

您需要提供Context实例。我可以看到您的适配器在构建时将具有此实例。当您new ImageAdapter(Context context, List<UploadClass> uploads)从您的活动或片段调用时,您将您的Context对象(在本例中是您的Activiy)传递给 ImageAdapter 实例,以便您可以在您的方法中使用它。

所以正确的替换是:

Toast.makeText(mContext, post_key, Toast.LENGTH_LONG).show();

PS 如果适配器是 JudgeActivity 的内部类,您的代码仍然可以工作。如果您没有将 ImageAdapter 类与 JudgeActivity 类分开,那么引用 JudgeActivity.this 上下文应该是成功的。


查看完整回答
反对 回复 2022-04-28
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号