Android(三十二):AlertDialog 对话弹窗
展示
源码
普通弹窗
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 对话弹窗相关推荐
- Android项目实战(三十二):圆角对话框Dialog
原文:Android项目实战(三十二):圆角对话框Dialog 前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对 ...
- android圆角对话框,Android项目实战(三十二):圆角对话框Dialog
原文: Android项目实战(三十二):圆角对话框Dialog 前言:html 项目中多处用到对话框,用系统对话框太难看,就本身写一个自定义对话框.android 对话框包括:一.圆角程序员 二.a ...
- Android Studio(十二):打包多个发布渠道的apk文件
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...
- OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己
OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...
- 静态树表查找算法及C语言实现,数据结构算法C语言实现(三十二)--- 9.1静态查找表...
一.简述 静态查找表又分为顺序表.有序表.静态树表和索引表.以下只是算法的简单实现及测试,不涉及性能分析. 二.头文件 /** author:zhaoyu date:2016-7-12 */ #inc ...
- axi dma 寄存器配置_FPGA Xilinx Zynq 系列(三十二)AXI 接口
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...
- ASP 三十二条精华代码
整理收藏: ASP 三十二条精华代码 1. οncοntextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键 <table b ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- 三十二、Java集合中的ArrayList
@Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...
- python建站部署_SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台...
SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台 一.概述 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源 ...
最新文章
- android studio 发布项目的流程
- [好书推荐].计算机原理与设计——Verilog HDL版等;待续
- Builder建造者模式
- 一起学设计模式-观察者模式
- 删除github上某个release/tag
- leetcode剑指 Offer 42. 连续子数组的最大和(动态规划)
- insertAdjacentHTML方法:在指定的地方插入html标签语句
- 高通CEO:已向美国申请向华为出售芯片 但尚未有回应
- pythonrequests证书_requests的ssl证书验证、身份认证、cert文件证书
- 地震勘探算法matlab,SeismicLab 地震勘探,matlab程序包, 地球物理, 学。作图工具等。 249万源代码下载- www.pudn.com...
- 本周最新文献速递20211226
- c语言程序设计吉林大学康辉目录,[吉林大学康辉] 经典C语言程序设计视频教程 51讲...
- Linux使用7z压缩软件,解压到指定文件夹
- 为揭秘CSDN谁有100万粉丝?我连夜研发了粉丝数排行榜插件,通过 dalao 一键即可唤醒
- dsm是基于linux什么版本,DSM 文件扩展名: 它是什么以及如何打开它?
- Scala之case class
- [全流程案例]壮汉:3.头部雕刻(ZBrush)
- 快速打造企业员工积分福利系统,数字化福利管理增强员工凝聚力!
- Mathematica13 for Mac安装包+安装教程
- 华为交换机S5700配置syslog收集交换机日志
热门文章
- 互联网新时代要到来了(三)什么是ChatGPT?
- 隐藏的计算机管理员怎么显示,Win10系统如何隐藏管理员账户
- 全面解析Bot框架:从机器人平台的区别到知名框架
- Redis数据结构为字典Hash 实践 之 系统数据字典实时触发缓存存储
- python中codecs模块_python codecs模块解决UnicodeEncodeError
- html之间跳转如何传参数
- Android课程表架构简要分析
- JDBC——连接mysql的报错处理(Mysql8.0以上的报错处理)
- njupt MOOC 第十章编程
- Netty学习(六)-- Handler Pipeline