美文网首页
Recyclerview如何实现item点击事件

Recyclerview如何实现item点击事件

作者: 橙果子 | 来源:发表于2018-08-31 18:24 被阅读0次

    当你想在Activity中处理Aapter中的数据和点击事件时,还得将Activity中的数据传到Adapter中, 只要在Adapter中写一个回调接口,这样就能直接在Acitivity中处理了,不用来回传接数据了.

    1.在Adapter类中定义一个接口,例如就是这个 MyViewHolerClicks

     public interface MyViewHolerClicks {
            //item的回调方法
            void onItemClick(int position);
            //删除按钮的回调方法
            void deleteClick(int position);
        }
    

    2..在Adapter类将MyViewHolerClicks 设置为set方法,安卓快捷键alt+insert直接选择 setter

     public MyViewHolerClicks myViewHolerClicks;
    
        /**
         * 供外部Activity调用的
         *
         * @param myViewHolerClicks
         */
        public void setMyViewHolerClicks(MyViewHolerClicks myViewHolerClicks) {
            this.myViewHolerClicks = myViewHolerClicks;
        }
    

    3..在Adapter类的onBindViewHolder方法中设置点击事件

    @Override
        public void onBindViewHolder(final ViewHolder holder, final int position) {
            //绑定view的方法
            if (myViewHolerClicks != null) {
                holder.imageView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        myViewHolerClicks.onItemClick(position);
                    }
                });
    
                holder.deleteImg.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        myViewHolerClicks.deleteClick(position);
                    }
                });
            }
        }
    

    4.在你要使用的Activity界面初始化Adapter中的接口,实现接口中的方法

    /**
         * Adapter中详情点击事件
         * 删除按钮的点击事件
         */
        UploadProductionDisplayAdapter.MyViewHolerClicks myViewHolerClicks = new UploadProductionDisplayAdapter.MyViewHolerClicks() {
            /**
             * 每个item的点击事件
             */
            @Override
            public void onItemClick(int position) {
               
            }
           /**
             * 每个item的中删除按钮的点击事件
             */
            @Override
            public void deleteClick(int position) {
                //根据position删除展示列表的数据
              
            }
        };
    
    

    4.在你要使用的Activity界面

    //初始化Adapter
    TestAdatper adpter=new TestAdapter(this);
    recyclerview.setAdapter(adpter);
    adpter.setMyViewHolerClicks(myViewHolerClicks);
    

    相关文章

      网友评论

          本文标题:Recyclerview如何实现item点击事件

          本文链接:https://www.haomeiwen.com/subject/padewftx.html