1、调用AlertDialog的静态内部类Builder创建AlertDialog.Builder的对象。

2、调用AlertDialog.Builder的setTitle()和setIcon()方法分别设置AlertDialog对话框的标题名称和图标。

3、调用AlertDialog.Builder的setMessage()、setSingleChoiceItems()或者setMultiChoiceItems()方法设置AlertDialog对话框的内容为简单文本、单选列表或者为多选列表。

4、调用AlertDialog.Builder的setPositiveButton()和setNegativeButton()方法设置AlertDialog对话框的确定和取消按钮。

5、调用AlertDialog.Builder的create()方法创建AlertDialog对象。

6、调用AlertDialog对象的show()方法显示该对话框。

7、调用AlertDialog对象的dismiss()方法取消该对话框。

普通对话框+单选对话框+多选对话框+自定义对话框小实例

package haue.edu.dialog_test;import androidx.appcompat.app.AppCompatActivity;import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
//当退出当前页面时显示对话框@Overridepublic void onBackPressed() {//super.onBackPressed();
//        AlertDialog dialog;
//        AlertDialog.Builder builder=new AlertDialog.Builder(this);
//        builder.setTitle("通知!");
//        builder.setIcon(R.mipmap.ic_launcher);
//        builder.setMessage("就要退出了");
//        builder.setPositiveButton("去意已决", new DialogInterface.OnClickListener() {
//            @Override
//            public void onClick(DialogInterface dialog, int which) {
//                dialog.dismiss();
//                MainActivity.this.finish();//关闭页面
//            }
//        });
//        builder.setNegativeButton("再想想", new DialogInterface.OnClickListener() {
//            @Override
//            public void onClick(DialogInterface dialog, int which) {
//                dialog.dismiss();
//            }
//        });
//        dialog=builder.create();
//        dialog.show();//第二种方法AlertDialog dialog;AlertDialog.Builder builder=new AlertDialog.Builder(this).setTitle("警告").setIcon(R.mipmap.ic_launcher).setNegativeButton("考虑一下", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}}).setPositiveButton("去意已决", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {MainActivity.this.finish();}});dialog=builder.create();dialog.show();//设置按钮文本颜色dialog.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(Color.GREEN);dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(Color.CYAN);}
}
---------------------------------------------------------------------------------
//单选对话框(字体大小)
public void sizechange(View view) {final int[] size={10,30,50};//保存用户选择的是几号字体值是数组的下标text_size = 1;AlertDialog dialog;AlertDialog.Builder builder=new AlertDialog.Builder(this).setTitle("请选择字号").setIcon(R.mipmap.ic_launcher).setSingleChoiceItems(new String[]{"小号", "中号", "大号"}, 1, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) { //which是下标text_size=which;}}).setPositiveButton("ok", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();tv_infor.setTextSize(size[text_size]);}}).setNegativeButton("candle", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});dialog=builder.create();dialog.show();}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//多选对话框
//弹出多选对话框public void select_hobby(View view) {final String[] hobby={"reading","singing","sleeping"};final boolean[]checked={false,false,false};AlertDialog dialog;AlertDialog.Builder builder=new AlertDialog.Builder(this).setTitle("请选择爱好").setIcon(R.mipmap.ic_launcher).setMultiChoiceItems(hobby, checked, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {checked[which]=isChecked;//将第which个选项的状态设置为isChecked}}).setPositiveButton("ok", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();String result="";//用户最终的选择,初始化为空for(int i=0;i<checked.length;i++){if(checked[i]){result+=hobby[i]+" ";}}tv_infor.setText(result);}}).setNegativeButton("cancle", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});dialog=builder.create();dialog.show();}

可能会用到的方法:onBackpressed()

finish()方法

dialog.getButton()可以改变dialog中的按钮的颜色

AlertDialo的使用(具体参照官方文档)相关推荐

  1. 基于docker安装部署Zabbix及使用,自动发现、日志监控报警及参照官方文档遇到的问题(图文)

    目录 一.相关原理 (1)概述 (2)Zabbix 功能 (3)Zabbix 概述 (4)zabbix监控架构详解 二.主要步骤 (一)工具/环境准备 (二)docker安装及测试 (三)docker ...

  2. Ant Design 入门-参照官方文档使用组件

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 先来一个按钮组件使用的对比,官方文档的(不能直接用)和实际能用的. 官网demo: import { Tabl ...

  3. Element-UI 要怎么学?官方文档!

    Element UI Element UI 介绍 安装 Element UI Element UI 组件使用 Basic 组件 Button 按钮 Link 文字链接 Layout 布局 Contai ...

  4. linux3.10.53编译,根据官方文档在Linux下编译安装Apache

    根据官方文档在Linux下编译安装Apache 前言 永远记住官方文档才是最准确的安装手册,这篇文章仅为对官方文档的解读和补充,学习提升务必阅读官方文档: http://httpd.apache.or ...

  5. Windows环境下安装RabbitMQ(官方文档中文版)

    安装RabbitMQ 软件提取 链接:https://pan.baidu.com/s/1bIqTqEf7b8bcGZ6_jSIccg  提取码:nnju 本文按照官方文档按步骤详细解读,废话不多说,下 ...

  6. 最新Elasticsearch8.4.3 + Kibana8.4.3在云服务器Centos7.9安装部署(参考官方文档)

    一.前言   最近笔者学习Elasticsearch,官方最新稳定版为 Elasticsearch-8.4.3,想在云服务器上Centos7.9搭建.搭建之路坑多路少啊(指网上的博文教程五花八门,基本 ...

  7. k8s多master建议用几个_Kubernetes 教程之跟着官方文档从零搭建 K8S

    前言 本文将带领读者一起, 参照者 Kubernetes 官方文档, 对其安装部署进行讲解. Kubernetes 更新迭代很快, 书上.网上等教程可能并不能适用于新版本, 但官方文档能. 阅读这篇文 ...

  8. 来自官方文档的Ubuntu 16.04 + tensorflow-GPU 配置

    I  Preprare for CUDA installation 官方文档:http://docs.nvidia.com/cuda/cuda-installation-guide-linux/ind ...

  9. AsyncDisplayKit官方文档个人翻译

    迁移老文章到掘金 文档比较老了,不适用最新的2.0 AsyncDisplayKit 官方文档 最近在拆解学习AsyncDisplayKit这个很知名的轮子,发现这个轮子内容还是非常庞大的,想要分解学习 ...

最新文章

  1. 多线程:为什么不能override start方法
  2. 使用 css/less 动态更换主题色(换肤功能)
  3. Java 中日期的几种常见操作 —— 取值、转换、加减、比较
  4. jdk 1.8 concurrenthashmap扩容原理
  5. 图灵机器人-Java/Android
  6. 机器学习处理信号分离_[学习笔记]使用机器学习和深度学习处理信号基础知识...
  7. Python如何发布程序
  8. getFilterFromRunTimeService - what is the trigger point of data load
  9. 代码环复杂度的计算公式
  10. 【蓝桥杯官网试题 - 基础练习】 矩形面积交 (几何)
  11. vue连线 插件_一起写一个即插即用的 Vue Loading 插件
  12. 北大青鸟汉字注释机内码_delphi取汉字的机内码、UniCode码
  13. 基于SPSS的聚类分析原理概述
  14. python整数范围_python整数范围
  15. 使用hexo+github搭建免费个人博客详细教程
  16. pci-e服务器显卡性能,旗舰显卡不同PCI-E模式下性能对比测试
  17. Win11无法识别以太网怎么办?Win11以太网未识别网络的解决方法
  18. 码码在线考勤系统笔记(三)
  19. 基于JAVA学术会议信息网站计算机毕业设计源码+系统+数据库+lw文档+部署
  20. iOS app url scheme跳转到淘宝商品详情页 唤醒app

热门文章

  1. 个性化推荐系统之用户画像研究笔记
  2. Flink 版本数据湖(hudi)实时数仓---flinkcdc hudi kafak hive
  3. 网站选择按钮点击无反应?_实用图片素材网站推荐,高清、免费、无版权!
  4. linux改变终端字体颜色,Linux-自我定义设置终端界面的字体颜色
  5. 官方正版制作Win10U盘启动攻略
  6. 在微软的Word中使用输入法打字,发现文字候选框在右上角,这种情况可能需要点击一下键盘上的Insert按键
  7. php怎么制作虚线表格,excel虚线怎么去掉打印在一页
  8. 星起航:抖音小店如何找优质同行店铺
  9. 各大门户手机端页面是怎么切得
  10. python时间索引_python+dataframe + 时间索引