对AlertDialog.Builder进行封装

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:31   1521   0

为了应付认证考试,我对一些常用的控件进行了封装.

封装类,

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();


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP