# CustomDialog
**Repository Path**: dezhihuang/CustomDialog
## Basic Information
- **Project Name**: CustomDialog
- **Description**: 自定义对话框
- **Primary Language**: Android
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-05-12
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
自定义确认对话框。
1 设置自定义对话框样式
```xml
```
2 新建自己的布局文件:包含标题TextView,提示文本TextView,取消按钮Button,确认按钮
3 对话框设置圆角背景(文件建在drawable文件夹下)
```xml
```
4 按钮同样设置圆角背景,并有点击效果,即点击时改变背景颜色(文件建在drawable文件夹下)
```xml
-
-
```
5 新建自定义对话框类,继承自android.app.Dialog
```java
public class CustomAlertDialog extends Dialog {
public CustomAlertDialog(Context context) {
super(context, R.style.CustomAlertDialog);
}
public CustomAlertDialog(Context context, int themeResId) {
super(context, themeResId);
}
protected CustomAlertDialog(Context context, boolean cancelable,
DialogInterface.OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
}
}
```
在构造函数中设置前面自定义的样式。(第3行)
6 重写onCreate方法,设置自定义布局并初始化相关控件
7 设置按钮点击事件
创建监听回调接口
```java
public interface OnClickListener {
void onClick(Dialog dialog);
}
```
取消按钮一般直接销毁对话框,确认对话框传入自己是为了确认点击之后销毁对话框。(如果是自定义输入对话框,确认按钮的点击回调接口将输入框的值传入)
```java
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CustomAlertDialog.this.dismiss();
}
});
btnConfirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mOnClickListener != null) {
mOnClickListener.onClick(CustomAlertDialog.this);
}
}
});
```
8 提供方法设置相关参数,如标题、提示文本、字体颜色、按钮背景等。为了能够链式调用,每个方法返回自己。
9 调用
```java
new CustomAlertDialog(this)
.setButtonBackgroundResource(R.drawable.rounded_button_bg_green)
.setTitleText("通知")
.setMessageText("消息消息")
.setTextColor(Color.argb(255,60,179,113))
.setOnClickListener(new CustomAlertDialog.OnClickListener() {
@Override
public void onClick(Dialog dialog) {
dialog.dismiss();
}
})
.show();
```
注意:相关参数要在调用show之前设置,调用show时会调用onCreate,所以在onCreate中初始化控件。