回调

来源:互联网 发布: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