前言
前面封装了项目中经常使用到的几种Dialog,自己在使用过程中也发现了一些问题,使用不是很方便,决定改动个别方法,故升到2.0。
引用方式
gradle引用
compile 'com.lai.weavey:dialog:2.0.1'
Maven配置
<dependency>
 <groupId>com.lai.weavey</groupId>
 <artifactId>dialog</artifactId>
 <version>2.0.1</version>
 <type>pom</type>
</dependency>
GitHub项目地址
https://github.com/weavey/NormalSelectDialog,欢迎fork或star,提出宝贵意见,有其他常用的Dialog可以告知,有时间将一起封装进本库。
2.0改动
- Dialog的属性设置与1.3版本基本无差别,改动了点击事件的接口回调,统一管理并公用,将Dialog对象返回:
 
public interface DialogInterface {
interface OnLeftAndRightClickListener<T> {
void clickLeftButton(T dialog, View view);
void clickRightButton(T dialog, View view);
}
interface OnSingleClickListener<T> {
    void clickSingleButton(T dialog, View view);
}
interface OnItemClickListener<T> {
    void onItemClick(T dialog, View button, int position);
}
}
将Dialog对象返回,一些比较不常用的属性可通过getDialog()方法获取Dialog后自行设置,更加灵活。例:
NormalAlertDialog dialog = new NormalAlertDialog.Builder(MainActivity.this).setHeight(0.23f) //屏幕高度*0.23 .setTitleVisible(true) .setTitleText("温馨提示") .setContentText("是否关闭对话框?") .setSingleMode(true) .setSingleButtonText("关闭") .setCanceledOnTouchOutside(false) .setSingleListener(new DialogInterface.OnSingleClickListener<NormalAlertDialog>() { @Override public void clickSingleButton(NormalAlertDialog dialog, View view) { dialog.dismiss(); } }) .build(); //屏蔽返回键取消对话框 dialog.getDialog().setOnKeyListener(new android.content.DialogInterface.OnKeyListener() { @Override public boolean onKey(android.content.DialogInterface dialog, int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ return true; } return false; } }); dialog.show();
使用方法
样式一:NormalSelectionDialog

使用如下代码:
 ArrayList<String> s = new ArrayList<>();
s.add("Weavey0");
s.add("Weavey1");
s.add("Weavey2");
s.add("Weavey3");
new NormalSelectionDialog.Builder(this).setlTitleVisible(true)   //设置是否显示标题
        .setTitleHeight(65)   //设置标题高度
        .setTitleText("please select")  //设置标题提示文本
        .setTitleTextSize(14) //设置标题字体大小 sp
        .setTitleTextColor(R.color.colorPrimary) //设置标题文本颜色
        .setItemHeight(40)  //设置item的高度
        .setItemWidth(0.9f)  //屏幕宽度*0.9
        .setItemTextColor(R.color.colorPrimaryDark)  //设置item字体颜色
        .setItemTextSize(14)  //设置item字体大小
        .setCancleButtonText("Cancle")  //设置最底部“取消”按钮文本
        .setOnItemListener(new DialogInterface.OnItemClickListener<NormalSelectionDialog>() {
            @Override
            public void onItemClick(NormalSelectionDialog dialog, View button, int
                    position) {
                dialog.dismiss();
            }
        })
        .setCanceledOnTouchOutside(true)  //设置是否可点击其他地方取消dialog
        .build()
        .setDatas(s)
        .show();
样式二:NormalAlertDialog

使用如下代码:
new NormalAlertDialog.Builder(MainActivity.this).setTitleVisible(false)
            .setTitleText("温馨提示")
            .setTitleTextColor(R.color.black_light)
            .setContentText("是否关闭对话框?")
            .setContentTextColor(R.color.black_light)
            .setLeftButtonText("关闭")
            .setLeftButtonTextColor(R.color.gray)
            .setRightButtonText("不关闭")
            .setRightButtonTextColor(R.color.black_light)
            .setOnclickListener(new DialogInterface.OnLeftAndRightClickListener<NormalAlertDialog>() {
                @Override
                public void clickLeftButton(NormalAlertDialog dialog, View view) {
                    dialog.dismiss();
                }
                @Override
                public void clickRightButton(NormalAlertDialog dialog, View view) {
                    dialog.dismiss();
                }
            })
            .build()
            .show();
样式三:NormalAlertDialog(单键)

使用如下代码:
new NormalAlertDialog.Builder(MainActivity.this).setHeight(0.23f)  //屏幕高度*0.23
            .setWidth(0.65f)  //屏幕宽度*0.65
            .setTitleVisible(true).setTitleText("温馨提示")
            .setTitleTextColor(R.color.colorPrimary)
            .setContentText("是否关闭对话框?")
            .setContentTextColor(R.color.colorPrimaryDark)
            .setSingleMode(true).setSingleButtonText("关闭")
            .setSingleButtonTextColor(R.color.colorAccent)
            .setCanceledOnTouchOutside(true)
            .setSingleListener(new DialogInterface.OnSingleClickListener<NormalAlertDialog>() {
                @Override
                public void clickSingleButton(NormalAlertDialog dialog, View view) {
                    dialog.dismiss();
                }
            })
            .build()
            .show();
样式四:MDAlertDialog

使用如下代码:
new MDAlertDialog.Builder(MainActivity.this)
          .setHeight(0.21f)  //屏幕高度*0.21
          .setWidth(0.7f)  //屏幕宽度*0.7
          .setTitleVisible(true)
          .setTitleText("温馨提示")
          .setTitleTextColor(R.color.black_light)
          .setContentText("确定发送文件?")
          .setContentTextColor(R.color.black_light)
          .setLeftButtonText("不发送")
          .setLeftButtonTextColor(R.color.gray)
          .setRightButtonText("发送")
          .setRightButtonTextColor(R.color.black_light)
          .setTitleTextSize(16)
          .setContentTextSize(14)
          .setButtonTextSize(14)
          .setOnclickListener(new DialogInterface.OnLeftAndRightClickListener<MDAlertDialog>() {
              @Override
              public void clickLeftButton(MDAlertDialog dialog, View view) {
                  dialog.dismiss();
              }
              @Override
              public void clickRightButton(MDAlertDialog dialog, View view) {
                  dialog.dismiss();
              }
          })
          .build()
          .show();
样式五:MDSelectionDialog

使用如下代码:
datas = new ArrayList<>();
datas.add("标为未读");
datas.add("置顶聊天");
datas.add("删除该聊天");
new MDSelectionDialog.Builder(MainActivity.this)
        .setCanceledOnTouchOutside(true)
        .setItemTextColor(R.color.black_light)
        .setItemHeight(50)
        .setItemWidth(0.8f)  //屏幕宽度*0.8
        .setItemTextSize(15)
        .setCanceledOnTouchOutside(true)
        .setOnItemListener(new DialogInterface.OnItemClickListener<MDSelectionDialog>() {
            @Override
            public void onItemClick(MDSelectionDialog dialog, View button, int position) {
                dialog.dismiss();
            }
        })
        .build()
        .setDatas(datas)
        .show();
样式六:MDEditDialog

使用如下代码:
new MDEditDialog.Builder(MainActivity.this).setTitleVisible(true)
            .setTitleText("修改用户名")
            .setTitleTextSize(20)
            .setTitleTextColor(R.color.black_light)
            .setContentText("Weavey")
            .setContentTextSize(18)
            .setMaxLength(7)
            .setHintText("7位字符")
            .setMaxLines(1)
            .setContentTextColor(R.color.colorPrimary)
            .setButtonTextSize(14)
            .setLeftButtonTextColor(R.color.colorPrimary)
            .setLeftButtonText("取消")
            .setRightButtonTextColor(R.color.colorPrimary)
            .setRightButtonText("确定")
            .setLineColor(R.color.colorPrimary)
            .setInputTpye(InputType.TYPE_CLASS_NUMBER)
            .setOnclickListener(new DialogInterface.OnLeftAndRightClickListener<MDEditDialog>
                    () {
                @Override
                public void clickLeftButton(MDEditDialog dialog, View view) {
                    dialog.getEditTextContent();
                    dialog.dismiss();
                }
                @Override
                public void clickRightButton(MDEditDialog dialog, View view) {
                    dialog.getEditTextContent();
                    dialog.dismiss();
                }
            })
            .setMinHeight(0.3f)
            .setWidth(0.8f)
            .build()
            .show();