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;
|
}
|
}
|