引言
前几篇文章都在对RxJava2和Retrofit的封装,没有 Dialog ,看上去还是比较生硬,所以本章就来对Dialog进行封装。
正文
DialogHelper
为保证Dialog的可扩展性和可替代性,我们在编码的时候不应该直接使用 new 的方式来创建和使用,而是应该对我们需要的组件再做一层中间件封装,对内部提供调用方法和接口,在未来出现替换组件的情况也只需要在中间件中替换相应的组件即可。
分析
本篇文章选用 android.support.v7.app.AlertDialog来进行封装,我们先确定出我们平常开发中需要的基础 Dialog 样式。如下表格:
方法名称
含义
showLoadingDialog
显示加载框,主要用在获取数据和提交数据中
showMessageDialog
显示没有等级的消息,只有一个确认按钮
showSuccessDialog
成功提示弹窗,有确定按钮
showWarningDialog
警告弹窗,有确定按钮
showErrorDialog
错误弹窗,有确定按钮
showConfirmDialog
确认弹窗,有取消和确定
dismissDialog
关闭弹窗显示
对于常用的方法暂时定义这么多.
创建和编写相关方法
前面定义了一些方法,现在需要进行方法的定义和重写,大多数的方法都是需要重写两个以上的,比方说showMessageDialog就有两种情况:
需要点击确定按钮后的回调,需要做后续的操作
不需要点击确定按钮的回调,单纯做消息提示
而对不同的情况我们需要做不同的封装,不说考虑的万分齐全,但求能把能想到的都实现,为的就是让我们在编码的时候更舒爽和快速。
操作回调接口
关于回调,我们可以写两个接口:
/**
* 确认按钮点击的回调
*/
public interface OnDialogConfirmListener {
/**
* 确定按钮点击的回调
* @param dialog 弹窗
*/
void onDailogConfirmListener(AlertDialog dialog);
}
/**
* 取消按钮点击的回调
*/
public interface OnDialogCancelListener {
/**
* 取消按钮点击的回调
*
* @param dialog 弹窗
*/
void onDailogCancelListener(AlertDialog dialog);
}
DialogHelper内容
具体方法定义如下:
/**
* 弹窗帮助类
*/
public class DialogHelper {
/**
* 显示 loading 弹窗,默认不能点击空白处进行取消
*
* @param loadingTip 信息提示
*/
public void showLoadingDialog(String loadingTip) {
}
/**
* 显示 loading 弹窗
*
* @param loadingTip 信息提示
* @param cancelable 能不能点击空白的地方
*/
public void showLoadingDialog(String loadingTip, Boolean cancelable) {
}
/**
* 信息提示弹窗
*
* @param message 提示信息的内容
*/
public void showMessageDialog(String message) {
}