业务描述
ViewPage中有四个Fragment,每一个Fragment中有一个按钮,给他门设置一个回调,在主Activity中操作具体的业务
public class CabinKindFragment extends Fragment implements View.OnClickListener{
@BindView(R.id.begin)
Button btnBegin;
//定义用来与外部activity交互,获取到宿主activity
private OnIsLockListener listterner;
// 定义了所有activity必须实现的接口方法
private OnIsLockListener onIsLockListener;//认证识别接口
//登录按钮回调
public interface OnIsLockListener {
void onIsLockSuccess();
}
//设置回调接口
public void setOnIsLockListener(OnIsLockListener listener) {
this.onIsLockListener = listener;
}
// 当FRagmen被加载到activity的时候会被回调
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
if(activity instanceof OnIsLockListener) {
listterner = (OnIsLockListener)activity; // 获取到宿主activity并赋值
} else{
throw new IllegalArgumentException("activity must implements FragmentInteraction");
}
}
//把传递进来的activity对象释放掉
@Override
public void onDetach() {
super.onDetach();
listterner = null;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
...//这里写你的fragment布局实现内容
return view;
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.begin:
listterner.onIsLockSuccess(); // 执行业务员回调
break;
}
}
}
首先你的activity需要写上implements CabinKindFragment.OnIsLockListener
//实现接口,实现回调
@Override
public void onIsLockSuccess() {//fragment按钮点击则会触发这个回调方法
//具体业务操作
}