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

我应该在 OnBindViewHolder() 方法中设置 ReyclerView

我应该在 OnBindViewHolder() 方法中设置 ReyclerView

跃然一笑 2022-06-04 17:26:47
我有一个RecyclerView,我每秒更新它的项目 30 次。现在我的问题是:如果我在方法中设置每个项目的 OnClickListner,每秒将创建onBindViewHolder(final ViewHolder holder, int position)30 个对象。View.OnClickListner这会导致问题吗?谢谢。  @Override  public void onBindViewHolder(final ViewHolder holder, int position) {    holder.root.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        //do something      }    });  }
查看完整描述

3 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

这是一个很好的资源:


Recyclerview-listener


public interface OnItemClickListener {

    void onItemClick(ContentItem item);

}


public void bind(final ContentItem item, final OnItemClickListener listener) {

    ...

    itemView.setOnClickListener(new View.OnClickListener() {

        @Override public void onClick(View v) {

            listener.onItemClick(item);

        }

    });

}


查看完整回答
反对 回复 2022-06-04
?
POPMUISE

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

本文中实现View.OnClickListenerRetcyerView 的 Items 的方法 非常好。它还管理项目选择。



查看完整回答
反对 回复 2022-06-04
?
红颜莎娜

TA贡献1842条经验 获得超13个赞

你可以onBindViewHolder用来设置可点击并且它工作


像这种情况


@Override

public void onBindViewHolder(MyViewHolder holder, final int position) {


    holder.cardView.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            Toast.makeText(mContext, "Clicked", Toast.LENGTH_SHORT).show();

            Intent intent = new Intent(mContext, NextModel.class);

            mContext.startActivity(intent);

        }

    });

}


查看完整回答
反对 回复 2022-06-04
  • 3 回答
  • 0 关注
  • 208 浏览

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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