定义一个CommonDialog类
public class CommonDialog extends DialogFragment {
private View mView;
private TextView mTvContent;
private String content = "您确认执行此操作吗?";
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
mView = inflater.inflate(R.layout.dialog_make_sure, container);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
initView();
return mView;
}
private void initView() {
TextView mTvSure = (TextView) mView.findViewById(R.id.tv_sure);
TextView mTvCancel = (TextView) mView.findViewById(R.id.tv_cancel);
mTvContent = (TextView) mView.findViewById(R.id.tv_dialog_make_sure_content);
mTvContent.setText(content);
mTvSure.setOnClickListener(v -> {
if (mListener != null) {
mListener.onSureClick();
}
dismiss();
});
mTvCancel.setOnClickListener(v -> {
// if (mListener != null) {
// mListener.onCancelClick();
// }
dismiss();
});
}
public void setContent(String content) {
this.content = content;
}
public interface onDialogClickListener {
void onSureClick();
// void onCancelClick();
}
private onDialogClickListener mListener;
public void setDialogClickListener(onDialogClickListener mListener) {
this.mListener = mListener;
}
}
dialog_make_sure布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_gravity="center"
android:background="@drawable/bg_dialog_rectangle"
android:orientation="vertical">
<TextView
android:id="@+id/tv_dialog_make_sure_content"
android:layout_width="280dp"
android:layout_height="80dp"
android:padding="10dp"
android:layout_gravity="center"
android:gravity="center"
android:textSize="16sp"
android:text="您确定要删除此地址吗?"
android:textColor="@color/black" />
<View
android:id="@+id/divider3"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="#999999" />
<LinearLayout
android:layout_width="280dp"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_cancel"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="取消"
android:textSize="16sp"
android:textColor="@color/black" />
<View
android:layout_width="1px"
android:layout_height="match_parent"
android:background="#999999" />
<TextView
android:id="@+id/tv_sure"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:textSize="16sp"
android:text="确定"
android:textColor="@color/black" />
</LinearLayout>
</LinearLayout>
bg_dialog_rectangle背景xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white"/>
<corners android:radius="10dp"/>
</shape>
在activity或fragment中使用
CommonDialog commonDialog = new CommonDialog();
commonDialog.setContent("确定关闭对话框吗?");
commonDialog.setDialogClickListener(() -> ToastUtils.showToast("确认关闭"));
commonDialog.show(getSupportFragmentManager(),"");