RecyclerView的点击事件

举报
liuzhen007 发表于 2021/07/18 10:42:39 2021/07/18
【摘要】 目录问题解决 问题问题:RecyclerView可以设置每个对象的点击事件吗?Stackoverflow地址:https://stackoverflow.com/questions/24471109/recyclerview-onclick大家有人使用RecyclerView找到了一种方法,可以为RecyclerView中的每一项设置onClickListener监听方法吗?我打算为每个项目...

image.png

目录

  • 问题
  • 解决

问题

问题:RecyclerView可以设置每个对象的点击事件吗?

Stackoverflow地址https://stackoverflow.com/questions/24471109/recyclerview-onclick

大家有人使用RecyclerView找到了一种方法,可以为RecyclerView中的每一项设置onClickListener监听方法吗?我打算为每个项目的布局元素设置一个侦听器,但这似乎有些麻烦,我确信有一种方法可以让RecyclerView侦听onClick事件,但我目前想不到。

解决

由于RecyclerView官方的API方法已经发生了重大的变化,如果你想为每个元素项都创建一个单独的OnClickListener监听器,我也不会感到惊讶。不过,这并不困难。你可以在RecyclerView.Adapter<MyViewHolder>的实现中,参考代码如下:

private final OnClickListener mOnClickListener = new MyOnClickListener();

@Override
public MyViewHolder onCreateViewHolder(final ViewGroup parent, final int viewType) {
    View view = LayoutInflater.from(mContext).inflate(R.layout.myview, parent, false);
    view.setOnClickListener(mOnClickListener);
    return new MyViewHolder(view);
}

onClick方法定义如下:

@Override
public void onClick(final View view) {
    int itemPosition = mRecyclerView.getChildLayoutPosition(view);
    String item = mList.get(itemPosition);
    Toast.makeText(mContext, item, Toast.LENGTH_LONG).show();
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。