package com.example.smart.widget.dialog; import android.app.Dialog; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Display; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.TextView; import androidx.annotation.Nullable; import androidx.fragment.app.DialogFragment; import com.example.smart.R; /** * @description: */ public class CommonDialog extends DialogFragment { private int layout = -1; private TextView confirmTv, cancelTv, contentTv; private String confirm, cancel, content; public CommonDialog(int layout) { setStyle(STYLE_NO_FRAME, R.style.common_dialog_style); this.layout = layout; } public CommonDialog() { setStyle(STYLE_NO_FRAME, R.style.common_dialog_style); layout = -1; } public CommonDialog(int layout, int style) { setStyle(STYLE_NO_FRAME, style); this.layout = layout; } @Override public void onStart() { super.onStart(); Dialog dialog = getDialog(); if (dialog != null) { try { Display display = getActivity().getWindowManager().getDefaultDisplay(); WindowManager.LayoutParams layoutParams = dialog.getWindow().getAttributes(); layoutParams.width = (int) (display.getWidth() * 0.8); dialog.getWindow().setAttributes(layoutParams); } catch (Exception e) { } } } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { View mView = inflater.inflate(layout == -1 ? R.layout.dialog_common : layout, container, false); confirmTv = mView.findViewById(R.id.confirm_tv); cancelTv = mView.findViewById(R.id.cancel_tv); contentTv = mView.findViewById(R.id.content_tv); if (this.cancel != null) { cancelTv.setText(cancel); } if (this.confirm != null) { confirmTv.setText(confirm); } if (this.content != null) { contentTv.setText(content); } if (confirmTv != null) { confirmTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); if (mOnCertainButtonClickListener != null) { mOnCertainButtonClickListener.onOk(); } } }); } if (cancelTv != null) { cancelTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); if (mOnCancelClickListener != null) { mOnCancelClickListener.onCancel(); } } }); } return mView; } public interface OnCertainClickListener { void onOk(); } public interface onCancelClickListener { void onCancel(); } private OnCertainClickListener mOnCertainButtonClickListener; private onCancelClickListener mOnCancelClickListener; public CommonDialog setCancelListener(onCancelClickListener listener) { mOnCancelClickListener = listener; return this; } public CommonDialog setCertainListener(OnCertainClickListener listener) { mOnCertainButtonClickListener = listener; return this; } public CommonDialog setConfirm(String confirm) { this.confirm = confirm; return this; } public CommonDialog setCancel(String cancel) { this.cancel = cancel; return this; } public CommonDialog setContent(String content) { this.content = content; return this; } public CommonDialog setDialogCancelable(boolean isCancel) { this.setCancelable(isCancel); return this; } }