高度自由化的android对话框, public class CommonDialog extends Dialog { private TextView tvContent; private Button btnCancel, btnSubmit; private OnCancelListener mCancelListener; private OnSubmitListener mSubmitListener; private Text
public class CommonDialog extends Dialog {
private TextView tvContent;
private Button btnCancel, btnSubmit;
private OnCancelListener mCancelListener;
private OnSubmitListener mSubmitListener;
private TextView tvSubContent;
private ImageView ivIcon;
private Context mContext;
private CommonDialog(Context context) {
this(context, R.style.dialogStyle);
}
private CommonDialog(Context context, int theme) {
super(context, theme);
mContext = context;
init();
}
@Override
public void show() {
super.show();
try {
setOwnerActivity((Activity) getContext());
} catch (Exception e) {
}
Window window = getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.width = (int) (TApplication.getScreenWidth() * 0.75);
window.setAttributes(lp);
}
private void init() {
setContentView(R.layout.dialog_remind);
tvContent = (TextView) findViewById(R.id.tv_content);
btnCancel = (Button) findViewById(R.id.btn_cancel);
btnSubmit = (Button) findViewById(R.id.btn_submit);
tvSubContent = (TextView) findViewById(R.id.tv_sub_content);
ivIcon = (ImageView) findViewById(R.id.iv_icon);
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mSubmitListener != null) {
mSubmitListener.onSubmit(v);
}
dismiss();
}
});
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mCancelListener != null) {
mCancelListener.onCancel(v);
}
dismiss();
}
});
}
public static class Build {
private RemindDialog dialog;
public Build(Context context) {
dialog = new RemindDialog(context);
}
public Build setMessage(CharSequence message) {
if (message instanceof String) {
String msg = message.toString();
if (msg.contains("[") && msg.contains("]")) {
int index1 = msg.indexOf("[");
int index2 = msg.indexOf("]");
msg = msg.substring(0, index1) + msg.substring(index2 + 1, msg.length());
}
dialog.tvContent.setText(msg);
}else {
dialog.tvContent.setText(message);
}
return this;
}
public Build setSubContent(CharSequence message) {
dialog.tvSubContent.setText(message);
dialog.tvSubContent.setVisibility(View.VISIBLE);
return this;
}
public Build setIcon(int resId) {
if (resId != 0) {
GlideUtils.setBitmapFromResource(dialog.mContext, resId, dialog.ivIcon);
}
dialog.ivIcon.setVisibility(View.VISIBLE);
return this;
}
public Build setCancelText(CharSequence cancelText) {
if (StringUtils.isNotBlank(cancelText.toString())) {
dialog.btnCancel.setText(cancelText);
}
return this;
}
public Build setSubmitText(CharSequence submitText) {
if (StringUtils.isNotBlank(submitText.toString())) {
dialog.btnSubmit.setText(submitText);
}
return this;
}
public Build setSubmitTextColor(int color){
dialog.btnSubmit.setTextColor(color);
return this;
}
public Build setOnCancelListener(OnCancelListener listener) {
dialog.mCancelListener = listener;
return this;
}
public Build hideTwoViews() {
dialog.tvSubContent.setVisibility(View.GONE);
dialog.ivIcon.setVisibility(View.GONE);
return this;
}
public Build showOneBtn() {
dialog.btnCancel.setVisibility(View.GONE);
dialog.btnSubmit.setBackgroundResource(R.drawable.shape_bottom_right);
return this;
}
public Build showTwoBtn() {
dialog.btnCancel.setVisibility(View.VISIBLE);
return this;
}
public Build setOnSubmitListener(OnSubmitListener listener) {
dialog.mSubmitListener = listener;
return this;
}
public RemindDialog show() {
dialog.show();
return dialog;
}
public RemindDialog create() {
return dialog;
}
}
public interface OnCancelListener {
void onCancel(View v);
}
public interface OnSubmitListener {
void onSubmit(View v);
}
