Android控件第7类——对话框
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类——对话框的更多相关文章
- Android控件第6类——杂项控件
1.Toast Toast用于显示提示信息. Toast不会获得焦点,没法关闭,过段时间会自动消失. 使用方法:Toast.makeText获得Toast,并设置相关属性.调用Toast对象的show ...
- Android控件第3类——AdapterView
AdapterView这一类控件的最大特点,在绝大多数的情况下,它们的数据都由Adapter的子类提供(有时可以在控件的entries属性上直接设置显示的数据). 调用AdapterView的setA ...
- Android控件第1类——TextView
Android提供TextView,它不能被编辑,它的子类EditText可以编辑.TextView有很多子类. 1.EditText,继承自TextView EditText可以编辑. 可以设置in ...
- Android控件之CalendarView 日历对话框
在Android 3.0中新增的日历视图控件可以显示网格状的日历内容,android.widget.CalendarView是从android.widget.FrameLayout中继承. Calen ...
- Android控件第4类——ProgressBar
ProgressBar是进度条,是比较常用的控件.它有一个抽象的子类——AbsSeekBar,AbsSeekBar有两个比较常用子类,SeekBar.RatingBar. 1.ProgressBar, ...
- Android控件第5类——ViewAnimator
1.ViewAnimator,继承自FrameLayout ViewAnimator是一个基类,它继承自FrameLayout.它的子类有ViewSwitcher和ViewFlipper:ViewSw ...
- Android控件第2类——ImageView
1.ImageView不仅仅可以显示图片,ImageView可以显示任何Drawable对象. adjustViewBounds:设置ImageView是否调整自己的边界来保证图片的长宽比. crop ...
- Android控件TextView的实现原理分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8636153 在前面一个系列的文章中,我们以窗口 ...
- Android控件介绍
1. 介绍 Android控件大多位于android.widget, android.view.View为他们的父类对于Dialog系列, android.app.Dialog为父类 Android的 ...
随机推荐
- loback学习
博客链接 http://aub.iteye.com/blog/1101222
- zabbix学习-如何部署一个agent客户端
1. 部署一个agent客户端很简单,比如监控服务器本身 yum install zabbix-agent -y 2.配置文件位置: vim /etc/zabbix/zabbix-agendt.con ...
- 你所不了解的javascript操作DOM的细节知识点(一)
你所不了解的javascript操作DOM的细节知识点(一) 一:Node类型 DOM1级定义了一个Node接口,该接口是由DOM中的所有节点类型实现.每个节点都有一个nodeType属性,用于表明节 ...
- centos 7 安装python3.5.1
系统: [root@localhost ~]# cat /etc/centos-release CentOS Linux release 7.2.1511 (Core) 内核: [root@local ...
- AI 奇异值分解(SVD)
奇异值分解(Singular Value Decomposition,简称SVD),将矩阵分解为奇异向量(singular vector)和奇异值(singular value). 每个实数矩阵都有一 ...
- 【Codeforces 1137B】Camp Schedule
Codeforces 1137 B 题意:给两个串\(S\).\(T\),问将\(S\)中字符任意调换后出现\(T\)次数最多的方案. 思路:我们首先考虑怎么样放\(T\)才是最优的.我们直观上考虑前 ...
- ingress-nginx 添加https证书
1.配了一个证书,发现报错: kubectl logs ingress-nginx-controller-96fnv -n ingress-nginx unexpected error vali ...
- uboot-jiuding 下主Makefile详解
主Makefile位于uboot源码的根目录下,其内容主要结构为: 1. 确定版本号及主机信息(23至48行)2. 实现静默编译功能(48至55行)3. 设置各种路径(56至123行)4. 设置编译工 ...
- awk 内置函数列表
1.gsub要在整个记录中替换一个字符串为另一个,使用正则表达式格式,/目标模式/,替换模式/.例如改变学生序号4842到4899:$ awk 'gsub('4842/, 4899) {print $ ...
- 转 Velocity中加载vm文件的三种方式
Velocity中加载vm文件的三种方式 velocitypropertiespath Velocity中加载vm文件的三种方式: 方式一:加载classpath目录下的vm文件 Prope ...