Dialog简单实现

以一个有确定和取消的简单dialog为例

1、dialog代码如下:

package com.dway.dialog;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;

import com.dway.test.R;

/**
 * 确定取消对话框
 * Created by ldw on 2017/12/18.
 */

public class CheckDialog extends Dialog implements View.OnClickListener {

    private String mMessage = "";

    public CheckDialog(@NonNull Context context) {
        super(context, R.style.MyDialogStyle);
    }

    public CheckDialog(@NonNull Context context, String message) {
        super(context, R.style.MyDialogStyle);
        mMessage = message;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_check);

        findViewById(R.id.dialog_check_yes).setOnClickListener(this);
        findViewById(R.id.dialog_check_no).setOnClickListener(this);

        if(!TextUtils.isEmpty(mMessage)) {
            TextView textView = findViewById(R.id.dialog_check_msg);
            textView.setText(mMessage);
        }

        setCancelable(true);
        setCanceledOnTouchOutside(true);
    }

    @Override
    public void onClick(View v) {
        if(v.getId() == R.id.dialog_check_yes){
            dismiss();
            if(mListener != null){
                mListener.onClickYes();
            }
        }else if(v.getId() == R.id.dialog_check_no){
            dismiss();
            if(mListener != null){
                mListener.onClickNo();
            }
        }
    }


    private OnDialogClickListener mListener = null;

    public void setOnDialogClickListener(OnDialogClickListener listener){
        mListener = listener;
    }

    public interface OnDialogClickListener {
        void onClickYes();
        void onClickNo();
    }

}

2、其中布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="624dp"
    android:layout_height="268dp"
    android:orientation="vertical"
    android:background="@drawable/dialog_bg" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="39dp"
        android:layout_gravity="center_horizontal"
        android:gravity="center"
        android:textSize="30sp"
        android:textColor="#404040"
        android:textStyle="bold"
        android:text="温馨提示"/>

    <TextView
        android:id="@+id/dialog_check_msg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:paddingStart="117dp"
        android:paddingEnd="117dp"
        android:layout_gravity="center_horizontal"
        android:gravity="start"
        android:textSize="19sp"
        android:textColor="#676767"
        android:text="提示内容"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="60dp"
        android:layout_gravity="center_horizontal"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/dialog_check_yes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="10dp"
            android:paddingBottom="10dp"
            android:paddingStart="50dp"
            android:paddingEnd="50dp"
            android:gravity="center"
            android:textSize="20sp"
            android:textColor="#ffffff"
            android:text="确定"
            android:background="@drawable/btn_bg_selector" />
        <TextView
            android:id="@+id/dialog_check_no"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="41dp"
            android:paddingTop="10dp"
            android:paddingBottom="10dp"
            android:paddingStart="50dp"
            android:paddingEnd="50dp"
            android:gravity="center"
            android:textSize="20sp"
            android:textColor="#ffffff"
            android:text="取消"
            android:background="@drawable/btn_bg_selector" />
    </LinearLayout>

</LinearLayout>

3、style.xml中:

<style name="MyDialogStyle" parent="@android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值