关闭

处理RecyclerView的点击事项

标签: androidrecyclerview点击事件viewholder
3122人阅读 评论(0) 收藏 举报
分类:

之前作者只是建立了不能响应点击事件的RecyclerView,然而需要实现RecyclerView的点击事件,就需要建立一个接口(在适配器中)。

之前操作的链接
http://blog.csdn.net/maokai1229/article/details/72123600
因为在适配器的ViweHolder中,会有许多Item的新建,而把item看成一个按钮,就需要事先实现按钮的接口(这里不需要考虑在Item的布局文件中声明onClick,因为设立涉及多个按钮响应)

1.在适配器中建立一个接口

  public interface ListItemClickListener {
        void onListItemClick(int id);
    }

2.声明接口 ,这个接口并不在适配器中实现,而是在Activity中,声明接口是为了在构造方法中传入。

 public GreenAdapter(int numberOfItems, ListItemClickListener mOnClickListener) {
        mNumberItems = numberOfItems;
        this.mOnClickListener=mOnClickListener;

        viewHolderCount = 0;
    }

3.在ViewHolder中引入onClickListener接口 ,在这里的position就相当于控件的ID。

        @Override
        public void onClick(View view) {
            int position = getAdapterPosition();//获取用户点击的item的位置
            mOnClickListener.onListItemClick(position);
        }

4最后在Activity中实现点击事件的具体逻辑。

 @Override
    public void onListItemClick(int id){
        if(mToast!=null){
            mToast.cancel();
        }//防止Toast在队列中等待,出现消息提示滞后的情况
        String show="Item :"+id+"was clicked";
        mToast=Toast.makeText(this,show,Toast.LENGTH_LONG);
        mToast.show();
    }
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:58968次
    • 积分:694
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论