android中AlertDialog.Builder自定義Dialog設定點選關閉
阿新 • • 發佈:2022-03-28
首先是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(); } }); } }