Adapter与Activity之间的传值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_33323480/article/details/84061925

1、在Adapter中定义一个监听器接口 addClickListener

       private static interface addClickListerner{

                  public void addClick(int position);  //自行配置参数  需要传递到activity的值

       }

2、两种方式
 

      private addClidkListener listener;

      (1)在adapter的构造函数中传入该监听器的对象

      private CutomAdapter(Context context,ArrayList<UserInfo> userList,addClidkListener listener) {

          mInflater = LayoutInflater.from(context);

          mContext = context;

          this.userList = userList;

          this.listener = listener;

      }

      (2)或者在Adapter中设置方法

  public void setCusClickListener(addClidkListener cusClickListener) {

    this.listener = cusClickListener;
  } 



3、adapter中有监听的地方调用接口中的方法 例如:

     holder.textview.setOnClickListener(new OnClickListener() {


                @Override

                public void onClick(View v) {

                                 if(listener!= null) {
                                        listener.addClick(position);
                                 }

                }

       });

4、在Activity中调用操作 与步骤2两种方式对应

      (1) 在Adapter构造函数中调用

        adapter = new  CutomAdapter(this,userList,new addClickListener(){

                @Override

                public void addClick(int position){

                   //更新Activity

                }

      }

    );

       在Adapter设置方法调用

       (2)adapter.setCusClickListener(new addClickListener(){

                @Override

                public void addClick(int position){

                   //更新Activity

                }

      });

猜你喜欢

转载自blog.csdn.net/weixin_33323480/article/details/84061925