展示

源码

普通弹窗

var btn01 = FindViewById<Button>(Resource.Id.btn_01);
var btn02 = FindViewById<Button>(Resource.Id.btn_02);
var btn03 = FindViewById<Button>(Resource.Id.btn_03);
var btn04 = FindViewById<Button>(Resource.Id.btn_04);if (btn01 != null)btn01.Click += (sender, args) =>{new AlertDialog.Builder(this).SetIcon(Resource.Drawable.small_icon)?.SetTitle("Title")?.SetMessage("Name:You瞧谁不起.\nMessage:道不尽世间的沧桑,诉不完人生的悲凉.")?.SetPositiveButton("Positive",(o, eventArgs) => Toast.MakeText(this, "PositiveButton", ToastLength.Short)?.Show())?.SetNeutralButton("Neutral",(o, eventArgs) => Toast.MakeText(this, "NeutralButton", ToastLength.Short)?.Show())?.SetNegativeButton("Negative",(o, eventArgs) => Toast.MakeText(this, "NegativeButton", ToastLength.Short)?.Show())?.Create()?.Show();};if (btn02 != null)btn02.Click += (sender, args) =>{var names = new[] { "ProsperLee", "张三", "李四" };new AlertDialog.Builder(this).SetIcon(Resource.Drawable.small_icon)?.SetTitle("Title")?.SetItems(names,(o, eventArgs) => Toast.MakeText(this, names[eventArgs.Which], ToastLength.Short)?.Show())?.Create()?.Show();};if (btn03 != null)btn03.Click += (sender, args) =>{var names = new[] { "ProsperLee", "张三", "李四" };new AlertDialog.Builder(this).SetIcon(Resource.Drawable.small_icon)?.SetTitle("Title")?.SetSingleChoiceItems(names, 1,(o, eventArgs) => Toast.MakeText(this, names[eventArgs.Which], ToastLength.Short)?.Show())?.Create()?.Show();};if (btn04 != null)btn04.Click += (sender, args) =>{var names = new[] { "ProsperLee", "张三", "李四" };var checkItems = new[] { true, false, true, false };new AlertDialog.Builder(this).SetIcon(Resource.Drawable.small_icon)?.SetTitle("Title")?.SetMultiChoiceItems(names, checkItems,(o, eventArgs) =>{checkItems[eventArgs.Which] = eventArgs.IsChecked;var list = new List<string>();for (var i = 0; i < checkItems.Length; i++)if (checkItems[i])list.Add(names[i]);Toast.MakeText(this, string.Join(",", list), ToastLength.Short)?.Show();})?.Create()?.Show();};

自定义弹窗

  • 弹窗样式 Resources/layout/dialog_view.xml

    <?xml version="1.0" encoding="utf-8"?>
    <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#ffffff"android:columnCount="2"><TextViewandroid:id="@+id/url_text"android:layout_width="0dp"android:layout_height="100dp"android:layout_columnWeight="1"android:layout_columnSpan="2"android:text="https://www.baidu.com/"android:gravity="center" /><Buttonandroid:id="@+id/done_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_columnWeight="1"android:layout_columnSpan="1"android:text="确定" /><Buttonandroid:id="@+id/cancel_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_columnWeight="1"android:layout_columnSpan="1"android:text="取消" /></GridLayout>
    
  • 脚本
    var btn05 = FindViewById<Button>(Resource.Id.btn_05);
    if (btn05 != null)btn05.Click += (sender, args) =>{var layoutInflater = LayoutInflater.From(this);var dialogView = layoutInflater?.Inflate(Resource.Layout.dialog_view, null, false);var dialog = new AlertDialog.Builder(this).SetView(dialogView)?.SetCancelable(false) // 当设置为false,点击返回键是无法返回的。默认为true?.Create();dialog?.Show();if (dialog == null) return;if (Resources is { DisplayMetrics: { } })dialog.Window?.SetLayout(Resources.DisplayMetrics.WidthPixels * 3 / 4,Resources.DisplayMetrics.HeightPixels * 2 / 4);var urlText = dialogView?.FindViewById<TextView>(Resource.Id.url_text);var doneBtn = dialogView?.FindViewById<Button>(Resource.Id.done_btn);var cancelBtn = dialogView?.FindViewById<Button>(Resource.Id.cancel_btn);if (doneBtn != null)doneBtn.Click += (o, eventArgs) =>{if (urlText != null){Toast.MakeText(this, urlText.Text, ToastLength.Short)?.Show();var uri = Uri.Parse(urlText.Text);var intent = new Intent(Intent.ActionView, uri);StartActivity(intent);}dialog.Dismiss();};if (cancelBtn != null)cancelBtn.Click += (o, eventArgs) =>{Toast.MakeText(this, "取消", ToastLength.Short)?.Show();dialog.Dismiss();};};
    

解决弹窗黑边情况

  • 修改主题

    android:Theme.Holo.Light.NoActionBar

Android(三十二):AlertDialog 对话弹窗相关推荐

  1. Android项目实战(三十二):圆角对话框Dialog

    原文:Android项目实战(三十二):圆角对话框Dialog 前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对 ...

  2. android圆角对话框,Android项目实战(三十二):圆角对话框Dialog

    原文: Android项目实战(三十二):圆角对话框Dialog 前言:html 项目中多处用到对话框,用系统对话框太难看,就本身写一个自定义对话框.android 对话框包括:一.圆角程序员 二.a ...

  3. Android Studio(十二):打包多个发布渠道的apk文件

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  4. OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己

    OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...

  5. 静态树表查找算法及C语言实现,数据结构算法C语言实现(三十二)--- 9.1静态查找表...

    一.简述 静态查找表又分为顺序表.有序表.静态树表和索引表.以下只是算法的简单实现及测试,不涉及性能分析. 二.头文件 /** author:zhaoyu date:2016-7-12 */ #inc ...

  6. axi dma 寄存器配置_FPGA Xilinx Zynq 系列(三十二)AXI 接口

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  7. ASP 三十二条精华代码

    整理收藏: ASP 三十二条精华代码 1. οncοntextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键 <table b ...

  8. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  9. 三十二、Java集合中的ArrayList

    @Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  10. python建站部署_SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台...

    SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台 一.概述 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源 ...

最新文章

  1. android studio 发布项目的流程
  2. [好书推荐].计算机原理与设计——Verilog HDL版等;待续
  3. Builder建造者模式
  4. 一起学设计模式-观察者模式
  5. 删除github上某个release/tag
  6. leetcode剑指 Offer 42. 连续子数组的最大和(动态规划)
  7. insertAdjacentHTML方法:在指定的地方插入html标签语句
  8. 高通CEO:已向美国申请向华为出售芯片 但尚未有回应
  9. pythonrequests证书_requests的ssl证书验证、身份认证、cert文件证书
  10. 地震勘探算法matlab,SeismicLab 地震勘探,matlab程序包, 地球物理, 学。作图工具等。 249万源代码下载- www.pudn.com...
  11. 本周最新文献速递20211226
  12. c语言程序设计吉林大学康辉目录,[吉林大学康辉] 经典C语言程序设计视频教程 51讲...
  13. Linux使用7z压缩软件,解压到指定文件夹
  14. 为揭秘CSDN谁有100万粉丝?我连夜研发了粉丝数排行榜插件,通过 dalao 一键即可唤醒
  15. dsm是基于linux什么版本,DSM 文件扩展名: 它是什么以及如何打开它?
  16. Scala之case class
  17. [全流程案例]壮汉:3.头部雕刻(ZBrush)
  18. 快速打造企业员工积分福利系统,数字化福利管理增强员工凝聚力!
  19. Mathematica13 for Mac安装包+安装教程
  20. 华为交换机S5700配置syslog收集交换机日志

热门文章

  1. 互联网新时代要到来了(三)什么是ChatGPT?
  2. 隐藏的计算机管理员怎么显示,Win10系统如何隐藏管理员账户
  3. 全面解析Bot框架:从机器人平台的区别到知名框架
  4. Redis数据结构为字典Hash 实践 之 系统数据字典实时触发缓存存储
  5. python中codecs模块_python codecs模块解决UnicodeEncodeError
  6. html之间跳转如何传参数
  7. Android课程表架构简要分析
  8. JDBC——连接mysql的报错处理(Mysql8.0以上的报错处理)
  9. njupt MOOC 第十章编程
  10. Netty学习(六)-- Handler Pipeline