海象先生

更深的思考,多问为什么。 GitHub:http://github.com/maokai1229

处理RecyclerView的点击事项

之前作者只是建立了不能响应点击事件的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();
    }
阅读更多
版权声明:转载请注明出处 https://blog.csdn.net/maokai1229/article/details/72529100
个人分类: android
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭