工作中实用的Android接口回调。
回调
先写一个接口 然后alt+inset 给他设置set方法,如下:
private OnClickListener onClickListener;
public void setOnClickListener(OnClickListener onClickListener) {
this.onClickListener = onClickListener;
}
public interface OnClickListener{
void onClick(int position, String typeid, String stateid, String id, String rfid);
}
然后在当前页面获取到你所需要的数据来作为参数:
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onClickListener.onClick(getAdapterPosition(), mList.get(getAdapterPosition()).getTYPEID(), mList.get(getAdapterPosition()).getSTATEID(),mList.get(getAdapterPosition()).getID(),mList.get(getAdapterPosition()).getRFID());
}
});
这边是点击item的时候获取到一些数据,总之,需要什么就取什么。不过注意的是,这里的setOnClickListener不是上边提到的接口里的那个set方法。
Adapter实例化后调用的setOnClickListener才是我们生成的那个set方法。
approvalAdapter.setOnClickListener(new ProcessSureAdapter.OnClickListener() {
@Override
public void onClick(int position,String typeid, String stateid, String id , String rfid) {
Intent intent = new Intent();
intent.putExtra("position",position);
intent.putExtra("typeid",typeid);
intent.putExtra("stateid",stateid);
intent.putExtra("id",id);
intent.putExtra("rfid",rfid);
if("5".equals(stateid)){
intent.setClass(getActivity(),AlreadyMaintainActivity.class);
}else {
intent.setClass(getActivity(),WaitMaintainActivity.class);
}
startActivity(intent);
}
});
这边的参数即是我们传过来的参数,然后可以对传过来的数据进行操作。