需求:
Activity弹出Dialog1,Dialog1中又弹出Dialog2,Dialog2扫码后要执行Activity中的支付方法。
实现思路:
Dialog2中建回调接口和方法,Dialog1实现2的接口,并实现其方法;1中建回调接口和方法,Acitivity中实现1的接口,并实现其方法。
1Dialog2中建回调接口方法
public interface ScanAfter{
void scanAfter();
}
public void setScanAfterCall(ScanPayDialog.ScanAfter mScanAfterCall) {
mScanAfter = mScanAfterCall;
}
2 Dialog1实现2的接口,并实现其方法
1中建回调接口和方法
public class MyAlertDialog extends Dialog implements ScanPayDialog.ScanAfter
mScanPayDialog.setScanAfterCall(MyAlertDialog.this);
@Override
public void scanAfter() {
LogUtils.E("wy","MyAlertDialog的回调");
mScanAfterMyAlertDialogCall.toPay();
}
public interface scanAfterMyAlertDialogCall {
void toPay();
}
public void setScanAfterMyAlertDialogyCall(scanAfterMyAlertDialogCall notifyCall) {
mScanAfterMyAlertDialogCall = notifyCall;
}
3Acitivity中实现1的接口,并实现其方法。
ad.setScanAfterMyAlertDialogyCall(this);
@Override
public void toPay() {
toPayFun();
}