一、前言
这篇博客关于打造一个仿造微信的 确认/取消 对话框。
1.自定义样式。
2.接口回调。
3.自定义对话框。
二、效果
三、编码与实现
public class ConfirmDialog extends Dialog {
private Button confirmBtn;
private Button cancelBtn;
private TextView titleTv;
private TextView contentTv;
private LinearLayout titleLayout;
private OnConfirmDialogButtonClickListener listener;
public ConfirmDialog(Context context) {
super(context, R.style.WeixinDialog);
initDialog(context);
}
private void initDialog(Context context) {
setContentView(R.layout.confirm_dialog_view);
confirmBtn = (Button) findViewById(R.id.btn_confirm);
cancelBtn = (Button) findViewById(R.id.btn_cancel);
titleTv = (TextView) findViewById(R.id.tv_title);
contentTv = (TextView) findViewById(R.id.tv_content);
titleLayout = (LinearLayout) findViewById(R.id.title_layout);
confirmBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (listener != null) {
listener.onConfirmButtonClick(v);
}
dismiss();
}
});
cancelBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (listener != null) {
listener.onCancelButtonClick(v);
}
dismiss();
}
});
}
public void setOnConfirmDialoButtonClick(
OnConfirmDialogButtonClickListener listener) {
this.listener = listener;
}
public void setTitle(String title) {
if (!"".equals(title)) {
titleLayout.setVisibility(View.VISIBLE);
titleTv.setText(title);
}
}
public void setMessage(String msg) {
contentTv.setText(msg);
}
public void setConfirmButtonText(String text) {
confirmBtn.setText(text);
}
public void setCancelButtonText(String text) {
cancelBtn.setText(text);
}
}