1. 程式人生 > 其它 >android中AlertDialog.Builder自定義Dialog設定點選關閉

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();

            }
        });
    }

}