自定义View-AlterDialog
UI有些丑,各位见谅啊🤣
自定义AlterDialog主要是自定义Builder
现在定义一个类继承AlterDialog,这里只是为了给Builder提供一个外部类,其实只是自定义一个Builder也是可以的
public class FxAlterDialog extends AlertDialog {
protected FxAlterDialog(@NonNull Context context) {
this(context, 0);
}
protected FxAlterDialog(@NonNull Context context, int themeResId) {
this(context, false, null);
}
protected FxAlterDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
}
}
写内部类Builder
public static class Builder extends AlertDialog.Builder {
private View mContainerView;
private Context mContext;
private AlertDialog mDialog;
private OnSuccessClickListener mOnSuccessClickListener;
private OnFailClickListener mOnFailClickListener;
private OnCancelClickListener mOnCancelClickListener;
private Button btnSuccess;
private Button btnFail;
private Button btnCancel;
private TextView mTvTitle;
private TextView mTvMessage;
private RelativeLayout mRlViewResult;
private ImageView mIvResult;
public final static int DEFAULT = -1;
public final static int OK = 0;
public final static int ERROR = 1;
public final static int WARNING = 2;
@IntDef({
DEFAULT, OK, ERROR, WARNING
})
@Retention(RetentionPolicy.SOURCE)
public @interface Result {
}
@Result
int curResult = DEFAULT;
public Builder setResult(@Result int result) {
curResult = result;
return this;
}
public Builder(Context context) {
super(context);
mContext = context;
if (mContainerView == null) {
mContainerView = LayoutInflater.from(mContext).inflate(R.layout.d