BaseDialog的代码较多,不全贴了,看几个点。
重载了众多
的
getDialog函数以灵活地创建对话框,最终调用:
public static BaseDialog getDialog(Context context, CharSequence title,主要是设置对话框的标题和内容,设置三个按钮的文本以及点击事件处理函数。 setButton1会判断如果对应的按钮文本和点击事件函数为空,就隐藏该按钮,在上一节的《 BaseDialog的界面 》里看到三个按钮的 layout_weight 属性均为1,如果有一个隐藏的话,其他两个按钮会平分布局的,所以界面显示上不会有问题。
CharSequence message, CharSequence button1,
DialogInterface.OnClickListener listener1, CharSequence button2,
DialogInterface.OnClickListener listener2, CharSequence button3,
DialogInterface.OnClickListener listener3) {
mBaseDialog = new BaseDialog(context);
if (mBaseDialog.titleAndMessageIsExist(title, message)) {
mBaseDialog.setTitle(title);
mBaseDialog.setMessage(message);
}
if (mBaseDialog.buttonIsExist(button1, listener1, button2, listener2,
button3, listener3)) {
mBaseDialog.setButton1(button1, listener1);
mBaseDialog.setButton2(button2, listener2);
mBaseDialog.setButton3(button3, listener3);
}
mBaseDialog.setCancelable(true);
mBaseDialog.setCanceledOnTouchOutside(true);
return mBaseDialog;
}
按钮点击事件也由外面设置,谁使用谁设置,也是比较灵活的。