1、AlertDialog

  AlertDialog用来生成对话框,功能十分强大。

  AlertDialog可以分成4个组成部分:标题栏上的图标,标题区,文本区,按钮区。

  使用方法:

    • 创建AlertDialog.Builder对象。
    • 对Builder对象设置属性。
    • 然后调用Builder对象的show方法显示AlertDialog;或者调用create方法生成AlertDialog对象,再调用AlertDialog对象收到show方法。

  AlertDialog.Builder提供了设置按钮的方法:setPositiveButton()、setNegativeButton()、setNeutralButton()

  可以使用下面6种方式之一为AlertDialog设置显示内容(均为AlertDialog.Builder类的方法):

    • setMessage():内容为简单文本
    • setItems():内容为列表
    • setSingleChoiceItems():内容为单选按钮列表
    • setMultiChoiceItems():内容为多选按钮列表
    • setAdapter():内容为自定义列表项
    • setView():内容为自定义View

      说明:以上6个方法除了setAdapter外,都有重载的方法,其中的一个方法第一个参数为int,指的是string资源

2、Activity显示为对话框风格

  Activity默认是占有全屏的,当程序中打开一个新的Activity时,也是完全覆盖了上一个Activity,即使新的Activity中的控件实际占用很小的空间。可以AndroidManifest.xml中设置<activity>的属性,来实现Activity显示成对话框的风格。

    <activity android:name="AtyWindow"
android:theme="@android:style/Theme.Dialog"> </activity>

3、PopupWindow显示对话框

  使用方法:

    • 创建PopupWindow对象
    • 调用PopupWindow对象的showAsDropDown(View v)将PopupWindow作为v控件的下拉组件显示出来;或者调用PopupWindow对象的showAtLocation()方法将PopupWindow在指定位置显示

4、DatePickerDialog,继承自AlertDialog

  用AlertDialog对DatePicker进行简单封装。

  在构造函数中传递OnDateSetListener对象监听设置了日期的事件(Positive按钮被按下)。

  使用方法:调用DatePickerDialog的show方法即可。

5、TimerPickerDialog,继承自AlertDialog

  用AlertDialog对TimePicker进行简单封装。

  在构造函数中传递OnTimeSetListener对象监听设置了日期的事件(Positive按钮被按下)。

  使用方法:调用TimePickerDialog的show方法即可。

6、ProgressDialog,继承自AlertDialog

  显示ProgressDialog的方式有两种:

    • 使用ProgressDialog的静态方法show,这种方式通常用于显示简单的进度条。
    • 创建ProgressDialog对象,对其进行设置,然后调用对象的show方法。

  可以像ProgressBar一样,对ProgressDialog调用setMax和setProgress、incrementProgressBy等方法设置其最大值和当前值等属性。

  和ProgressBar类似,ProgressDialog通常用于在进行耗时操作的时候使用,通常使用多线程来处理。这时不能在其他线程中修改ProgressDialog的进度,只能在主线程中修改,所以通常需要使用Handler来完成这个操作。

  Handler的说明:Android Handler 异步调用修改界面与主线程

Android控件第7类——对话框的更多相关文章

  1. Android控件第6类——杂项控件

    1.Toast Toast用于显示提示信息. Toast不会获得焦点,没法关闭,过段时间会自动消失. 使用方法:Toast.makeText获得Toast,并设置相关属性.调用Toast对象的show ...

  2. Android控件第3类——AdapterView

    AdapterView这一类控件的最大特点,在绝大多数的情况下,它们的数据都由Adapter的子类提供(有时可以在控件的entries属性上直接设置显示的数据). 调用AdapterView的setA ...

  3. Android控件第1类——TextView

    Android提供TextView,它不能被编辑,它的子类EditText可以编辑.TextView有很多子类. 1.EditText,继承自TextView EditText可以编辑. 可以设置in ...

  4. Android控件之CalendarView 日历对话框

    在Android 3.0中新增的日历视图控件可以显示网格状的日历内容,android.widget.CalendarView是从android.widget.FrameLayout中继承. Calen ...

  5. Android控件第4类——ProgressBar

    ProgressBar是进度条,是比较常用的控件.它有一个抽象的子类——AbsSeekBar,AbsSeekBar有两个比较常用子类,SeekBar.RatingBar. 1.ProgressBar, ...

  6. Android控件第5类——ViewAnimator

    1.ViewAnimator,继承自FrameLayout ViewAnimator是一个基类,它继承自FrameLayout.它的子类有ViewSwitcher和ViewFlipper:ViewSw ...

  7. Android控件第2类——ImageView

    1.ImageView不仅仅可以显示图片,ImageView可以显示任何Drawable对象. adjustViewBounds:设置ImageView是否调整自己的边界来保证图片的长宽比. crop ...

  8. Android控件TextView的实现原理分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8636153 在前面一个系列的文章中,我们以窗口 ...

  9. Android控件介绍

    1. 介绍 Android控件大多位于android.widget, android.view.View为他们的父类对于Dialog系列, android.app.Dialog为父类 Android的 ...

随机推荐

  1. Linux下安装ElasticSearch 5 和配置外部访问

    https://www.cnblogs.com/hts-technology/p/8477291.html (一)ElasticSearch需要jdk1.8以上版本的支持,所以需要先安装jdk.lin ...

  2. Domain Adaptation (1)选题讲解

    1 所选论文 论文题目: <Unsupervised Domain Adaptation with Residual Transfer Networks> 论文信息: NIPS2016, ...

  3. go标准库的学习-text/template

    参考:https://studygolang.com/pkgdoc 导入方式: import "text/template" template包实现了数据驱动的用于生成文本输出的模 ...

  4. sizeof(自己摸索d)

    Sizeof() 判断数据类型长度符的关键字 sizeof用法 sizeof(类型说明符,数组名或表达式); 或sizeof (变量名); 定义 sizeof是C/C++中的一个操作符(operato ...

  5. battery for stm32

    右边两个1N4148的压降都是0.7V,并且3.3-0.7=2.6V   &   3-0.7=2.3V  可见在电源3.3V正常供电的情况下,电池处于休息状态,这就有效避免了电池的不必要消耗:

  6. ubuntu打开windows下txt文档乱码问题的解决

    昨天晚上安装了Ubuntu11.10,打开TXT文件的时候发现中文乱码问题,在网上查了一下,一些网友提供了下面的方法: “按Alt+F2,打开“运行应用程序”对话框,输入“gconf-editor”, ...

  7. java 数据类型和运算符

    1.注释 单行注释:  //哈哈哈 多行注释: /* 啦啦啦 */ 文档注释: /**    */注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API)        ...

  8. 使用Android SDK Manager下载sdk时总是出现中断异常的解决办法。

    1.搜到到你本机的hosts文件. 2.打开该文件. 3.在该文件最后一行添加:74.125.31.136 dl-ssl.google.com 4.重新下载问题解决. 参考链接:http://bbs. ...

  9. 大数据处理过程核心技术ETL详细介绍

    架构挑战 1.对现有数据库管理技术的挑战. 2.经典数据库技术并没有考虑数据的多类别(variety).SQL(结构化数据查询语言),在设计的一开始是没有考虑到非结构化数据的存储问题. 3.实时性技术 ...

  10. 案例学python——案例二:连接数据库MySql

    调侃的话:案例一跑完之后,欣赏把玩了一番.人就有点飘飘然,昨天除了做饭吃饭,就是玩三国杀,江郎才尽,今天周一,不飘了,敲点代码,看看Python操作数据库有啥不一样的. 前期准备: 1.数据库 电脑上 ...