【Android】6.2 AlertDialog(警告对话框)
分类:C#、Android、VS2015;
创建日期:2016-02-08
一、简介
AlertDialog也是Android系统当中常用的对话框之一。
在一个AlertDialog中,可以有一个Button、两个Button、3个Button。另外,还可以自定义对话框的样式,比如带有单选按钮的对话框、带有复选框的对话框等。
1、基本用法
一般通过AlertDialog.Builder.Create()方法来构造该对话框,然后就可以通过dialog调用对应的方法。常用方法如下:
- SetTitle:设置对话框标题
- SetIcon:设置对话框图标
- SetMessage:设置对话框内容
- StView: 设置自定义的对话框样式
- SetItems:设置对话框要显示的列表
- SetSingleChoiceItems:在对话框中显示一系列的单选按钮
- SetMultiChoiceItems:在对话框中显示一系列的复选框
- SetNegativeButton:对对话框添加在左侧显示的按钮
- SetNeutralButton:为对话框添加在中间显示的按钮
- SetPositiveButton:为对话框添加在右侧显示的按钮
- Create :创建对话框
- Show :显示对话框
2、自定义警告框
尽管系统默认的Dialog已经能够基本上满足大多数情况,但由于系统默认对话框样式是固定的,而在实际开发过程中,往往根据应用不同,可能会使用不同的布局或者配色,这些情况下就需要自定义对话框了。
自定义一个对话框的基本步骤如下:
(1)修改系统默认的Dialog样式(风格、主题)
(2)自定义Dialog布局文件。
(3)封装一个继承自Dialog的子类或者直接用Dialog类来实现。为了方便重用,建议自己封装一个单独的继承自Dialog的子类。
二、示例—Demo02AlertDialog
1、运行截图
2、添加Demo02_AlertDialog.axml
在layout文件夹下添加该文件。
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:gravity="center">
- <Button
- android:id="@+id/demo1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="用法1-简单对话框(一个按钮)" />
- <Button
- android:id="@+id/demo2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="用法2-简单对话框(两个按钮)" />
- <Button
- android:id="@+id/demo3"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="用法3-简单对话框(三个按钮)" />
- <Button
- android:id="@+id/demo4"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="用法4-包含单选按钮的对话框" />
- <Button
- android:id="@+id/demo5"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="用法5-包含复选框的对话框" />
- </LinearLayout>
3、添加Demo02AlertDialog.cs
在SrcActivity文件夹下添加该文件。
- using System.Collections.Generic;
- using Android.App;
- using Android.OS;
- using Android.Widget;
- namespace ch06demos.SrcActivity
- {
- [Activity(Label = "Demo02AlertDialog")]
- public class Demo02AlertDialog : Activity
- {
- protected override void OnCreate(Bundle savedInstanceState)
- {
- base.OnCreate(savedInstanceState);
- SetContentView(Resource.Layout.Demo02_AlertDialog);
- var btn1 = FindViewById<Button>(Resource.Id.demo1);
- btn1.Click += delegate
- {
- //基本用法1(一个按钮)
- var dialog = new AlertDialog.Builder(this)
- .SetTitle("用法1")
- .SetMessage("这是用法1示例的警告信息!")
- .SetIcon(Resource.Drawable.Icon)
- .SetNeutralButton("确定", (s1, e1) =>
- {
- Toast.MakeText(this, "OK", ToastLength.Long).Show();
- });
- dialog.Create().Show();
- };
- var btn2 = FindViewById<Button>(Resource.Id.demo2);
- btn2.Click += delegate
- {
- //基本用法2(两个按钮)
- var dialog = new AlertDialog.Builder(this)
- .SetTitle("用法2")
- .SetMessage("如果继续,将丢失所有未保存的信息,继续吗?")
- .SetIcon(Resource.Drawable.Icon)
- .SetNegativeButton("是", (sender,args)=>
- {
- var btnClicked = (sender as AlertDialog).GetButton(args.Which);
- Toast.MakeText(this, "你单击了" + btnClicked.Text, ToastLength.Long).Show();
- })
- .SetPositiveButton("否", (sender, args) =>
- {
- var btnClicked = (sender as AlertDialog).GetButton(args.Which);
- Toast.MakeText(this, "你单击了" + btnClicked.Text, ToastLength.Long).Show();
- });
- dialog.Create().Show();
- };
- var btn3 = FindViewById<Button>(Resource.Id.demo3);
- btn3.Click += delegate
- {
- //基本用法3(三个按钮)
- var dialog = new AlertDialog.Builder(this)
- .SetTitle("用法3")
- .SetMessage("你准备采用哪种排列方式?")
- .SetIcon(Resource.Drawable.Icon)
- .SetNegativeButton("从小到大", delegate
- {
- Toast.MakeText(this, "你单击了[从小到大]", ToastLength.Long).Show();
- })
- .SetNeutralButton("从大到小", delegate
- {
- Toast.MakeText(this, "你单击了[从大到小]", ToastLength.Long).Show();
- })
- .SetPositiveButton("原始顺序", delegate
- {
- Toast.MakeText(this, "你单击了[原始顺序]", ToastLength.Long).Show();
- });
- dialog.Create().Show();
- };
- var btn4 = FindViewById<Button>(Resource.Id.demo4);
- btn4.Click += delegate
- {
- //包含单选按钮的对话框
- string[] colors = { "红色", "绿色", "蓝色", "深红色" };
- int n = ;
- var dialog = new AlertDialog.Builder(this)
- .SetTitle("用法4-请选择你喜欢的颜色(单选):")
- .SetSingleChoiceItems(colors, , (sender, args) =>
- {
- n = args.Which;
- })
- .SetNeutralButton("确定", (sender, args) =>
- {
- Toast.MakeText(this, "你选择了:" + colors[n], ToastLength.Long).Show();
- });
- dialog.Create().Show();
- };
- var btn5 = FindViewById<Button>(Resource.Id.demo5);
- btn5.Click += delegate
- {
- //包含复选框的对话框
- string[] items = { "足球", "篮球", "乒乓球", "排球" };
- bool[] selectedItems = new bool[items.Length];
- var dialog = new AlertDialog.Builder(this)
- .SetTitle("用法5-请选择你参加的体育活动(可多选):")
- .SetMultiChoiceItems(items, selectedItems, (s, e) =>
- {
- if (e.IsChecked) selectedItems[e.Which] = true;
- })
- .SetNeutralButton("确定", delegate
- {
- List<string> list = new List<string>();
- for (int i = ; i < items.Length; i++)
- {
- if (selectedItems[i] == true)
- {
- list.Add(items[i]);
- }
- }
- Toast.MakeText(this, "你的选择是:" + string.Join("、", list.ToArray()), ToastLength.Long).Show();
- });
- dialog.Create().Show();
- };
- }
- }
- }
4、运行
按<F5>键调试运行。
【Android】6.2 AlertDialog(警告对话框)的更多相关文章
- Android开发之AlertDialog警告提示框删除与取消 详解代码
package cc.jiusansec.www; import android.app.Activity; import android.app.AlertDialog; import androi ...
- Android中的AlertDialog使用示例一(警告对话框)
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式. ...
- Android中的AlertDialog使用示例二(普通选项对话框)
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式. ...
- android 开发AlertDialog.builder对话框的实现
AndroidAPI提供了Dialog对话框控件,但google明确指出不建议开发者只是使用Dialog来创建对话框,而应该自定义对话框或者使用API中提供的Dialog的子类,如AlertDialo ...
- Android学习:AlertDialog对话框
AlertDialog可以生成各种内容的对话框,它生成的对话框包含4个区域:图标区,标题区,内容区,按钮区 <?xml version="1.0" encoding=&quo ...
- Android 自定义AlertDialog退出对话框
Android 自定义AlertDialog退出对话框 转 https://blog.csdn.net/wkh11/article/details/53081634在项目中很多时候会出现点击返回键出现 ...
- [Android Pro] Android 官方推荐 : DialogFragment 创建对话框
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...
- 转帖:Android 官方推荐 : DialogFragment 创建对话框
转: Android 官方推荐 : DialogFragment 创建对话框 复制内容,留作备份 1. 概述 DialogFragment在android 3.0时被引入.是一种特殊的Fragment ...
- AlertDialog.Builder对话框类的用法
1.在测试时,如何实现一个提示 可以使用 Toast.makeText(this, "这是一个提示", Toast.LENGTH_SHORT).show(); //从资源文件str ...
随机推荐
- 读取Mat文件中的汉字代码
拿到一种元数据,格式为*.mat,但Access打不开,百度也没看到比较好的解决方案. 但是用文本文档可以打开,那估计它和txt类似了,于是想自己写代码来处理了,立马写了读取的丑陋工具.读取是没什么问 ...
- linux可视化桌面安装
[root@VM_193_201_centos ~]# yum grouplist Loaded plugins: fastestmirror, langpacks There is no insta ...
- PG里如何查看表,索引,表空间,数据库大小
--查询一个索引大小 select pg_size_pretty(pg_relation_size('indexname)) --查看一张表及此它上的索引总大小select pg_size_prett ...
- html5之canvas画图 1.写字板功能
写字板事例: 写字板分析:1.点击鼠标開始写字(onmosedown)2.按下鼠标写字(onmousemove)3.松开鼠标,停下写字(撤销onmousemove事件): 代 ...
- Oracle常用标准表
一.INV(库存) 子库存:mtl_secondary_inventories 事物处理:mtl_material_transactions mmt 事务处理来源类型:mtl_txn_source_t ...
- 插入UUID,出现Data truncation: Data too long for column 'id' at row 1
ssc.udf.register("getuuid", () => UUID.randomUUID().toString) val stuPCountDF_tmp1=ssc. ...
- default
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Spring Framework Ecosystem – Introduction to Spring Projects
来自于:http://springtutorials.com/spring-ecosystem/ Hello and Welcome to Spring Tutorials Blog! Is it f ...
- [原创]-[WEB]代码高亮工具
代码高亮显示,不是什么新鲜玩艺了,各种各样的插件多了去了. 一开始想在baidu空间里贴代码,用GeSHi生成的高亮HTML复制到编辑器就可以了,不过QQ空间却不行,复制过去的格式全部被清 ...
- 去掉cb中括号的匹配
Settings->Editor->General settings->Indent options->Brace completion``