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
}
});