开发时候需要对整个APP风格统一,所以对话框这种都是需要统一样式的,这种就需要自定义对话框了,可以自定义设置左右按钮文字,标题、内容提示、标题下面还有图标
效果图:
代码使用:
CommonDialog dialog = new CommonDialog(getActivity());
dialog.setMessage(message)
.setTitle("提示")
.setSingle(false)
.setNegtive("取消")
.setPositive("确定").setOnClickBottomListener(new CommonDialog.OnClickBottomListener() {
@Override
public void onPositiveClick() {
dialog.dismiss();
//确定操作
}
@Override
public void onNegtiveClick() {
dialog.dismiss();
//取消操作
}
}).show();
具体实现代码
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.blankj.utilcode.util.BarUtils;
import com.blankj.utilcode.util.ScreenUtils;
import java.util.Objects;
/**
* 统一提示框
*/
public class CommonDialog extends Dialog {
/**
* 显示的图片
*/
private ImageView imageIv;
/**
* 显示的标题
*/
private TextView titleTv;
/**
* 显示的消息
*/
private TextView messageTv;
/**
* 确认和取消按钮
*/
private TextView negtiveBn, positiveBn;
public CommonDialog(Context context) {
super(context, R.style.CustomDialog);
}
/**
* 都是内容数据
*/
private String message;
private String title;
private String positive, negtive;
private int imageResId = -1;
/**
* 底部是否只有一个按钮
*/
private boolean isSingle = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_tips);
//按空白处能取消动画
setCanceledOnTouchOutside(true);
//初始化界面控件
initView();
//初始化界面数据
refreshView();
//初始化界面控件的事件
initEvent();
getWindow