1. 程式人生 > >Adapter與Activity之間的傳值

Adapter與Activity之間的傳值

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

                }

      });