Android对话框总结(普通对话框,单选对话框,多选对话框,自定义对话框)

article/2025/10/29 6:13:15

个人推荐:

📢📢📢 前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下 "通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。点击跳转到教程。

在这里插入图片描述

一:AlterDialog对话框

在这里插入图片描述
在这里插入图片描述

二:普通对话框

在这里插入图片描述
运行效果:
在这里插入图片描述
代码详情
在这里插入图片描述
备注:onBackPressed()事件是用户点击回退键退出软件时触发,事件由系统自己监听。

三:单选对话框

在这里插入图片描述
运行效果:
在这里插入图片描述
代码详情
在这里插入图片描述

四:多选对话框

在这里插入图片描述
运行效果:
在这里插入图片描述
代码详情
在这里插入图片描述

五:自定义对话框

在这里插入图片描述
运行效果:
在这里插入图片描述
1:自定义对话框dialog.xml布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#11ffffff"><LinearLayoutandroid:layout_width="260dp"android:layout_height="wrap_content"android:layout_centerInParent="true"android:background="@drawable/radius_bomb_box"android:orientation="vertical"><TextViewandroid:id="@+id/title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="警告!!!"android:textColor="#38ADFF"android:textSize="16sp"/><TextViewandroid:id="@+id/message"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dp"android:layout_marginRight="20dp"android:layout_gravity="center"android:text="这是自定义对话框"/><Viewandroid:layout_width="match_parent"android:layout_height="1px"android:layout_marginTop="15dp"android:background="#E4E4E4"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="40dp"android:orientation="horizontal"><Buttonandroid:id="@+id/no"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:layout_marginLeft="10dp"android:background="@null"android:gravity="center"android:lines="1"android:text="取消"android:textColor="#7D7D7D"android:textSize="16sp"/><Viewandroid:layout_width="1px"android:layout_height="match_parent"android:background="#E4E4E4"/><Buttonandroid:id="@+id/yes"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:layout_marginRight="10dp"android:background="@null"android:gravity="center"android:lines="1"android:text="确定"android:textColor="#38ADFF"android:textSize="16sp"/></LinearLayout></LinearLayout>
</RelativeLayout>	

2:对话框圆角显示(在drawable下创建radius_bomb_box.xml)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<solid android:color="#ffffff" />
<strokeandroid:width="0.8dp"android:color="#ffffff" />
<!-- 圆角 -->
<corners android:radius="6dp" />
</shape>

3:Styles样式设置

<resources><!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style><!--自定义Dialog背景全透明无边框theme--><style name="MyDialog" parent="android:style/Theme.Dialog"><!--背景颜色和透明程度--><item name="android:windowBackground">@android:color/transparent</item><!--是否去除标题--><item name="android:windowNoTitle">true</item><!--是否去除边框--><item name="android:windowFrame">@null</item><!--是否浮现在activity之上--><item name="android:windowIsFloating">true</item><!--是否模糊--><item name="android:backgroundDimEnabled">false</item></style>
</resources>

4:创建MyDialog对话框类(继承Dialog类)

package cn.cg.promptbox;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class MyDialog  extends Dialog {private Button yes;//确定按钮private Button no;//取消按钮private TextView titleTV;//消息标题文本private TextView message;//消息提示文本private String titleStr;//从外界设置的title文本private String messageStr;//从外界设置的消息文本//确定文本和取消文本的显示的内容private String yesStr, noStr;private onNoOnclickListener noOnclickListener;//取消按钮被点击了的监听器private onYesOnclickListener yesOnclickListener;//确定按钮被点击了的监听器public MyDialog(Context context, int themeResId) {super(context, themeResId);}/*** 设置取消按钮的显示内容和监听** @param str* @param onNoOnclickListener*/public void setNoOnclickListener(String str, onNoOnclickListener onNoOnclickListener) {if (str != null) {noStr = str;}this.noOnclickListener = onNoOnclickListener;}/*** 设置确定按钮的显示内容和监听** @param str* @param yesOnclickListener*/public void setYesOnclickListener(String str, onYesOnclickListener yesOnclickListener) {if (str != null) {yesStr = str;}this.yesOnclickListener = yesOnclickListener;}protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//布局视图setContentView(R.layout.dialog);//空白处不能取消动画setCanceledOnTouchOutside(false);//初始化界面控件initView();//初始化界面数据initData();//初始化界面控件的事件initEvent();}/*** 初始化界面控件*/private void initView() {yes = findViewById(R.id.yes);no = findViewById(R.id.no);titleTV = (TextView) findViewById(R.id.title);message = (TextView) findViewById(R.id.message);}/*** 初始化界面控件的显示数据*/private void initData() {//如果用户自定了title和messageif (titleStr != null) {titleTV.setText(titleStr);}if (messageStr != null) {message.setText(messageStr);}//如果设置按钮文字if (yesStr != null) {yes.setText(yesStr);}if (noStr != null) {no.setText(noStr);}}/*** 初始化界面的确定和取消监听*/private void initEvent() {//设置确定按钮被点击后,向外界提供监听yes.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (yesOnclickListener != null) {yesOnclickListener.onYesOnclick();}}});//设置取消按钮被点击后,向外界提供监听no.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (noOnclickListener != null) {noOnclickListener.onNoClick();}}});}/*** 从外界Activity为Dialog设置标题** @param title*/public void setTitle(String title) {titleStr = title;}/*** 从外界Activity为Dialog设置message** @param message*/public void setMessage(String message) {messageStr = message;}//取消按钮监听事件public interface onNoOnclickListener {public void onNoClick();}//确定按钮监听事件public interface onYesOnclickListener {public void onYesOnclick();}
}

5:通过自己创建的Dialog 类(MyDialog)进行显示

     /*自定义对话框*///自定义对话框private  MyDialog myDialog;private void DisplayCustomDialog(View view) {myDialog=new MyDialog(MainActivity.this,R.style.MyDialog);myDialog.setTitle("警告");myDialog.setMessage("这是自定义对话框!");myDialog.setYesOnclickListener("确定", new MyDialog.onYesOnclickListener() {@Overridepublic void onYesOnclick() {//确定点击事件Toast.makeText(MainActivity.this,"你点击了自定义提示框确定按钮",Toast.LENGTH_SHORT).show();myDialog.dismiss();}});myDialog.setNoOnclickListener("取消", new MyDialog.onNoOnclickListener() {@Overridepublic void onNoClick() {//取消点击事件Toast.makeText(MainActivity.this,"你点击了自定义提示框取消按钮",Toast.LENGTH_SHORT).show();myDialog.dismiss();}});myDialog.show();}

备注:自定义对话框来源于来自这里
关于@null的解释
在这里插入图片描述


最后整个项目下载地址点击下载吧!


http://chatgpt.dhexx.cn/article/mmhGgxO6.shtml

相关文章

Android对话框显示输入框

在弹出的对话框显示输入框有两种方法&#xff1a; 法一&#xff1a;新建一个布局&#xff0c;并在对话框中引用它。 法二&#xff1a;直接在Activity中定义Edit并在对话框中用getText方法得到输入信息。

Android对话框的使用

Android对话框的使用 对话框&#xff08;Dialog&#xff09;是Android系统在Activity或者其他组件运行过程中提供的一种提示机制。它可以帮助应用完成一些必要的提示功能&#xff0c;同时提供一些与用户交互的功能。 对话框分为很多种&#xff0c;下面将一一介绍…

android 自定义对话框

// 基础库 implementation com.github.goweii.AnyLayer:anylayer:2.5.0 // 通用弹窗&#xff08;依赖基础库&#xff09; implementation com.github.goweii.AnyLayer:anylayer-common:2.5.0 编写dialog_layout 布局 <?xml version"1.0" encoding"utf-8&qu…

Android对话框的使用总结

一&#xff0e;相关概念 一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能. Android API 支持下列类型的对话框对象: &#xff08;一&#x…

Android对话框控件读写,Android 对话框控件

对话框控件 一、概述 对话框是 UI 设计中常用的控件&#xff0c;在windows操作系统中&#xff0c;对话框可分为模式对话框和非模式对话框。 模式对话框在使用时&#xff0c;项目中其它UI是不允许操作的&#xff0c;如保存对文件话框 非模式对话框允许操作其它的 UI Android 的对…

Android对话框总结

一、什么是对话框&#xff1f; 一种次要窗口&#xff0c;包含按钮和各种选项&#xff0c;通过它们可以完成特定命令或任务。 查找和替换对话框 对话框与窗口有区别&#xff0c;它没有最大化按钮、没有最小化按钮、大都不能改变形状大小。&#xff08;“打开文件”对话框是可以改…

Android常用对话框

学习目标&#xff1a; 两周入门Android 学习内容&#xff1a; 常见对话框: 对话框是程序与用户交互的一种方式&#xff0c;通常用于显示当前程序提示信息以及相关说明,以小窗口形式展现 普通对话框&#xff1a; 通过AlertDialog.Builder(this).create来创建对话框最后通过…

了解Android布局,了解Android对话框布局

我正在为我的android应用程序做一个简单的自定义对话框&#xff0c;只显示一个搜索栏。然而&#xff0c;这个简单任务的复杂性让我很烦。了解Android对话框布局 我的对话框布局如下&#xff1a;在代码中创建 android:orientation"vertical" android:layout_width&quo…

Android对话框(普通对话框、单选对话框、多选对话框、进度条对话框)

一、普通对话框 // 通过builder 构建器来构造AlertDialog.Builder builder = new Builder(this);builder.setTitle("警告");builder.setMessage("你好么 ");builder.setPositiveButton("好", new OnClickListener() {@Overridepublic void onCl…

android 对话框窗口,Android 对话框详解(一)

对话框是程序运行中的弹出窗口。例如&#xff0c;当用户要删除一个联系方式时&#xff0c;会弹出一个 对话框&#xff0c;让用户确认是否真的要删除。 Android系统提供了四种对话框:警告对话框 (AlertDialog)、进度对话框(ProgressDialog)、日期选择对话框(DatePickerDialog)和…

Android对话框

(不足之处,多多担待) 一: 对话框的种类 1:提示对话框 2:自定义对话框 3:弹出对话框 二:设置对话框的详细步骤 1:提示对话框 在activity中设置代码实现功能 , 第一步实例化对话框 第二步是设置对话框的提示内容 ,有4个主要方法 (窗贴提示内容:setTitle() / setMessage()…

Android常用对话框大全——Dialog

唉&#xff01;最近一直忙碌着写项目以至于都没有空出点时间来总结近期的学习&#xff0c; 记录学习到的东西…现在正好有时间了就该好好记录一下学习的过程了。 今天就来谈谈开发中经常用的到的一个控件——Dialog&#xff0c;对话框一般我们就用来提示一些信息给用户&#…

Android 对话框(Dialog)

对话框是提示用户做出决定或输入额外事件的小窗口。对话框不会填充屏幕&#xff0c;通常用于需要用户采取行动才能继续执行的模式事件。 Dialog类是对话框的基类&#xff0c;我们可以使用Dialog来构建一个对话框。但Android建议避免直接使用Dialog&#xff0c;而应该使用其子类…

android十大常用对话框

Android十大常用对话框 一、对话框效果二、代码 最近老师叫我们整理android常用的对话框&#xff0c;我整理了十种对话框&#xff0c;用于分享交流&#xff0c;希望指正&#xff01; 一、对话框效果 主界面 1.普通对话框 2.单选对话框 3.多选对话框 4.列表对话框 5.不带进…

Android常用的几种对话框

1文本提示对话框 AlertDialog.Builder b new AlertDialog.Builder(this);//this为上下文&#xff0c;如果在本类里显示&#xff0c;通常使用this b.setTitle("标题");/对话框标题 b.setMessage("可能会删除某个文件");//提示文本 …

Android对话框的详细介绍(提示对话框,自定义对话框)

简介&#xff1a; 我们都知道在Android开发中&#xff0c;当我们的程序在与用户交互时&#xff0c;用户会得到一定的反馈&#xff0c;其中以对话框的形式的反馈还是比较常见的&#xff0c;接下来我们来介绍几种常见的对话框的基本使用。 前置准备&#xff1a;&#xff08;文章…

WinInet 和 WinHttp 有何区别?

背景 WinInet和WinHttp是windows平台下提供了两套独立的网络库&#xff0c;按照微软官方的说法&#xff0c; WinInet的优势在于client-端的应用&#xff0c;而WinHttp更适用于server-端编程。从名称上我们可以看出WinHttp在Http协议应用方面要比WinInet更加专业&#xff0c;Win…

使用WinHTTP与服务器通讯

WinHTTP 的工作流程如下 一.初始化WinHTTP 在与服务器交互之前, 必须用调用WinHttpOpen进行初始化,WinHttpOpen创建一个会话,并返回该会话的句柄,接着有了这个句柄, WinHttpConnect就能指定一个目标服务器 注意:调用了WinHttpConnect并不意味着和服务器建立了真正的连接 二.打…

使用c++ winhttp实现post请求

winhttp是windows网络库&#xff0c;要测试自己写的post请求是否有效&#xff0c;首先得在postman上面建立一个可用的接口。我的如下。 代码思路如下&#xff1a; 1、首先使用WinHttpCrackUrl拆解链接&#xff0c;后面会使用到拆解出来的信息。 2、再使用WinHttpOpen初始化 3、…

HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)

玩过抓包&#xff0c;网络协议分析的朋友肯定都知道http https post get&#xff0c;web端和用户的交互主要是通过post get完成的。 今天带给大家的是C版本的http https get post,只会易语言的朋友请移步。 我这里有两种实现&#xff1a; 1&#xff1a;libcurl实现的CHttpClien…