美文网首页
公用确认对话框

公用确认对话框

作者: 小婷android | 来源:发表于2021-03-31 11:21 被阅读0次
定义一个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(),"");

相关文章

网友评论

      本文标题:公用确认对话框

      本文链接:https://www.haomeiwen.com/subject/tiuohltx.html