回调
来源:互联网 发布:linux mysql安装 编辑:程序博客网 时间:2024/05/21 10:05
一:
1.在业务类中创建一个接口
// 定义回调接口public interface OnSmsListener {void onStart( int total);void onProgress(int progress);}2.将接口以参数的形式传递到业务方法中,并调用相应的方法
public static void Backup(Context context, OnSmsListener listener) { listener.onStart(XXX);listener.onProgress(XXX);}3.在界面显示中,去实现接口,并在相应的方法中进行操作
Engine.Backup (getApplicationContext(), new OnSmsListener() {@Overridepublic void onStart(int total) { // progressDialog.setMax(total);}@Overridepublic void onProgress(int progress) { // progressDialog.setProgress(progress);}});二:
/** 1. 定义一个接口*/public interface OnOpenStateChangeListener{/** 2. 定义回调方法*/public void onOpenStateChange(boolean isOpen);}/** 3. 定义一个public的方法,对外暴露设置方法*/public void setOnOpenStateChangeListener(OnOpenStateChangeListener onOpenStateChangeListener){this.mListener = onOpenStateChangeListener;} /** 4. 定义一个成员变量,用于保存用户设置的接听器*/private OnOpenStateChangeListener mListener;
if (mListener!=null) {<span style="white-space:pre"></span>/*<span style="white-space:pre"></span> * 5. 回调用户的方法<span style="white-space:pre"></span> */<span style="white-space:pre"></span>mListener.onOpenStateChange(isOpen);}使用
switchButton.setOnOpenStateChangeListener(new OnOpenStateChangeListener() {@Overridepublic void onOpenStateChange(boolean isOpen) {Toast.makeText(MainActivity.this, ""+isOpen, Toast.LENGTH_SHORT).show();}});
0 0