android中AlertDialog.Builder自定义Dialog设置点击关闭

首先是xml文件中的样式

需求是点击“我再想想”,关闭dialog提示框

查看代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingVertical="20dp"
    android:paddingHorizontal="30dp"
    android:background="@drawable/b3">

    <TextView
        android:id="@+id/tv_mg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:drawableTop="@mipmap/shouye"
        android:text="请开启消息通知"
        android:textSize="28sp"
        android:textStyle="bold" />
    <TextView
        android:id="@+id/tv_mg1"
        android:layout_marginTop="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#3C3232"
        android:text="这样可以及时获取影视更新提醒,站在追剧前线,第一时间当透剧小能手!"
        android:textSize="24dp"
        android:layout_below="@id/tv_mg"/>

    <Button
        android:id="@+id/btn_start"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_mg1"
        android:layout_marginTop="20dp"
        android:background="@drawable/b5"
        android:text="立即开启"
        android:textColor="@color/white"
        android:textSize="25dp" />
    <TextView
        android:id="@+id/tv_think"
        android:layout_marginTop="15dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我再想想"
        android:textSize="25dp"
        android:layout_below="@id/btn_start"
        android:layout_centerHorizontal="true"/>

</RelativeLayout>

通过android.app. AlertDialog.Builder builder = new AlertDialog.Builder(this);显示对话框,是没有对相应的方法关闭对话框的

但是AlertDialog.Builder的父类有cancel()和dismiss()方法关闭对话框

用父类创建子类对象即可使用父类的方法

AlertDialog TipsD = new AlertDialog.Builder(this,R.style.tips_dialog).setView(view).show();

 

package com.ltj.myapplication;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class DialogActivity9 extends AppCompatActivity {
    Button mBtnTips,mBtnProgress;
    Intent intent=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog9);

        mBtnTips=findViewById(R.id.btn_tips);
        mBtnProgress=findViewById(R.id.btn_pg);

        mBtnTips.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                TipsDialog();
            }
        });
    }

    private void TipsDialog() {
        View view = LayoutInflater.from(this).inflate(R.layout.layout_tips, null, false);
        Button mBtnTipsOk=view.findViewById(R.id.btn_start);
        TextView tvThink=view.findViewById(R.id.tv_think);
        AlertDialog TipsD = new AlertDialog.Builder(this,R.style.tips_dialog).setView(view).show();

//        TipsD.setNegativeButton("我再想想", new DialogInterface.OnClickListener() {
//            @Override
//            public void onClick(DialogInterface dialogInterface, int i) {
//
//            }
//        }).show();

        mBtnTipsOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                intent =new Intent(DialogActivity9.this,ButtonActivity.class);
                startActivity(intent);
            }
        });

        tvThink.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                TipsD.cancel();

            }
        });
    }

}

 

 

posted @ 2022-03-28 13:48  Eveeee  阅读(573)  评论(0)    收藏  举报