您的位置:首页 > 产品设计 > UI/UE

对AlertDialog.Builder进行封装

2016-06-12 13:55 549 查看
为了应付认证考试,我对一些常用的控件进行了封装.

封装类,

package com.example.diload;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.util.Log;

/**
* 封装diload的
*
* @author Luozubang
*
*/
public class OkDialog {
protected static DilodInterface dilodInterface;
// 传个content
private static Context context;
// 运用了单列中的饿汉式
private static final OkDialog OK_DIALOG = new OkDialog();
private static AlertDialog.Builder builder;

public static OkDialog NewInstance() {
return OK_DIALOG;
}

public OkDialog setTitle(String title) {
getBuider().setTitle(title);
return this;
}

public OkDialog setMessage(String message) {
getBuider().setMessage(message);
return this;
}

public OkDialog setBuider(Context context) {
builder = new AlertDialog.Builder(context);
return this;
}

private static AlertDialog.Builder getBuider() {
return builder;
}

// 确认
public OkDialog setConfirm(String confirm) {
getBuider().setPositiveButton(confirm, new MyDialogInterface());
return this;
}

// 取消
public OkDialog setCancel(String cancel) {
getBuider().setNegativeButton(cancel, new MyDialogInterface());
return this;
}

// 获取接口实例
public OkDialog execute(DilodInterface dilodInterface) {
OkDialog.dilodInterface = dilodInterface;
return this;
}

public interface DilodInterface {
// 确认操作
public void confirm();

// 取消操作
public void cancel();
}

// 提交
public void commit() {
getBuider().show();
}

}

// Dialog的监听
class MyDialogInterface implements DialogInterface.OnClickListener {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Log.v("TAG", which + "标志");
// 执行确认操作
switch (which) {
// -2表示取消,-1表示确认
case -2:
OkDialog.dilodInterface.cancel();
break;
case -1:
OkDialog.dilodInterface.confirm();

break;
default:
break;
}
}

}//测试我这个封装类
OkDialog.NewInstance().setBuider(this).setTitle("标题").setMessage("内容")
.setConfirm("确定").setCancel("取消").execute(new DilodInterface() {
// 执行确认操作
@Override
public void confirm() {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "你好啊", 0).show();
}
// 执行取消操作
@Override
public void cancel() {
// TODO Auto-generated method stub
}
// 提交
}).commit();



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: