写一个超级简便的对话框?
对,每次都是这个代码,写着不累吗?
当然累,那么拿出一个超级简便的对话框,到哪都去直接调用,必不可以少了!
创建一个类,写一个静态方法,直接调用!
public class ShowDialogUtil {
public ShowDialogUtil() {//无参构造函数
}
public ShowDialogUtil(Context context) {//一参构造函数
this.context = context;
}
}
然后直接上方法
public static void show(Context context, String title, String message,
DialogInterface.OnClickListener oclok,
DialogInterface.OnClickListener oclCancel) {
if (title == null && "".equals(title))
title = "提示";
if (message == null && "".equals(message))
message = "是否确定?";
if (oclok == null)
return;
if (oclCancel == null)
oclCancel = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
};
AlertDialog.Builder builder = new Builder(context);
builder.setTitle(title);
builder.setMessage(message);
builder.setNegativeButton("取消", oclok);
builder.setPositiveButton("确定", oclCancel);
builder.create().show();
}
参数 1.context:构造dialog需要的上下文,2.title:标题,3.message:显示内容4.oclok:用于点击确定的回调监听5.oclcancal:用于点击取消的回调监听
是不是很方便?除了,确认监听,其他的值都可以为空。体会一下,一句话,几个参数就弹出一个对话框的快感。赶紧和写对话框说拜拜!
同上:简化第五个参数
public static void show(Context context, String title, String message,
DialogInterface.OnClickListener oclok) {
if (title == null && "".equals(title))
title = "提示";
if (message == null && "".equals(message))
message = "是否确定?";
if (oclok == null)
return;
OnClickListener oclCancel = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
};
AlertDialog.Builder builder = new Builder(context);
builder.setTitle(title);
builder.setMessage(message);
builder.setNegativeButton("取消", oclok);
builder.setPositiveButton("确定", oclCancel);
builder.create().show();
}
然后?简化所有能简化的参数!
public static void show(Context context ,
DialogInterface.OnClickListener oclok) {
if (oclok == null)
return;
OnClickListener oclCancel = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
};
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("提示");
builder.setMessage("是否确定");
builder.setNegativeButton("取消", oclok);
builder.setPositiveButton("确定", oclCancel);
builder.create().show();
}
怎么调用?当然是这么调用
五参:ShowDialogUtil.show(x,x,x,x,x)
四参:ShowDialogUtil.show(x,x,x,x)
两参:ShowDialogUtil.show(x,x)
1.有时候是不是该改一下写代码的习惯了,别总是在冗余的代码浪费时间。
2.当应用需要调整风格的时候,dailog也有可能需要同时调整,这个时候你只要在这个上面加上
AlertDialog.Builder builder = new Builder(context,R.style.xxx);
那么这个样式就全局适用了,是不是又省去了大把的时间?