Android提供的对话框
1、普通对话框:
给出提示信息,有yes、no两个按钮。
AlertDialog dialog=new AlertDialog.Builder(this) //this代表当前Activity对象,表示此对话框属于当前Activity对象。也可用 类名.this 指定为其它的Activity对象
.setPositiveButton("确定",null) //要加的按钮必须放在create()之前
.setNegativeButton("取消",null) //第一个参数是按钮上的文本,第二个是监听器OnClickListener,可设置为null,点击时退出对话框
.setTitle("提示") //标题
.setMessage("是否退出?") //提示信息
.setIcon(R.drawable.a) //图标,只能是R.xxx.yyy的形式
.create(); //不用create(),直接show()也行 //标题、提示信息、图标也可以后面再设置
//dialog.setTitle("提示");
//dialog.setMessage("是否退出");
//dialog.setIcon(R.drawable.a); dialog.show(); //显示对话框
//dialog.hide(); //隐藏对话框
所有对话框都有 setTitle()、setMessage()、setIcon()、show()、hide()的方法。
其中 setTitle()、setMessage()、setIcon()既可以在create()之前使用,也可以在create()创建对话框后再使用。
2、单选对话框
AlertDialog dialog=new AlertDialog.Builder(this)
.setTitle("请选择性别")
.setIcon(R.drawable.a)
////设置一组单选按钮,第一个参数是String数组,第二参数设置默认选中的项(数组下标),第三个参数单选按钮的监听器
.setSingleChoiceItems(new String[]{"男","女"},0,null)
.show(); //不用create(),直接show()也行
3、多选对话框
AlertDialog dialog=new AlertDialog.Builder(this)
.setTitle("请选择爱好")
.setIcon(R.drawable.a) //设置一组多选按钮,第一个参数是String数组,第二参数boolean数组,true表示该项默认选中,第三个参数是监听器
.setMultiChoiceItems(new String[]{"读书","运动","旅游"},new boolean[]{true,true,false},null)
.show();
以上三种对话框中用到的事件监听:
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//i代表当前按钮的编号
}
}
普通对话框中,这个事件监听是某个按钮的事件监听。
单选/多线对话框中,这个事件监听是每个选项的事件监听,即点击一个选项,就会触发事件一次。
普通对话框、单选对话框、多选对话框都是AlertDialog。进度条对话框是ProgressDialog。
4、进度条对话框
当程序在进行耗时的操作时(比如下载文件),可以用进度条对话框来显示进度。
进度条有2种样式:
水平进度条 圆形进度条(圆圈会一直转动)
ProgressDialog dialog=new ProgressDialog(this); //注意用法有点不同,没有Builder()
dialog.setTitle("下载进度"); //注意ProgressDialog的方法都只能单独写,不能在创建ProgressDialog对象时写在后面
dialog.setIcon(R.drawable.a);
dialog.setMessage("正在下载请稍后"); //文本可用setMessage()动态修改,显示当前的具体操作
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置进度条样式
dialog.show();
5、消息对话框
消息对话框(Toast)是轻量级消息提醒机制,用于向用户显示即时消息。
Toast对话框显示在程序界面的最上层(最前面),显示一段时间后自动消失,不会打断当前操作,也不会获取焦点,只起到提示作用。
//makeText()是Toast类的静态方法。
//第一个参数指定消息对话框所属的Activity,可用Activity类名.this指定其他的,第二个参数指定提示文本,第三个参数是Toast类的预定义常量,指定显示时间的长短。
//要调用show()才会显示。
Toast.makeText(this,"电量不足10%!",Toast.LENGTH_LONG).show();
Android提供的对话框的更多相关文章
- android 8种对话框(Dialog)使用方法汇总
1.写在前面 Android提供了丰富的Dialog函数,本文介绍最常用的8种对话框的使用方法,包括普通(包含提示消息和按钮).列表.单选.多选.等待.进度条.编辑.自定义等多种形式,将在第2部分介绍 ...
- 常用的android弹出对话框
我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等 ...
- Android详细的对话框AlertDialog.Builder使用方法
我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继 ...
- 经常使用的android弹出对话框
我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其它平台开发经验的朋友都会知道,大部分的平台都仅仅提供了几个最简单的实现,假设我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承 ...
- Android 自学之对话框
Android为我们提供了丰富的对话框支持,提供了四种常用的对话框: AlertDialog:功能丰富.实际应用最广泛的对话框. ProgressDialog:进度对话框,该对话框只用于简单的进度条封 ...
- android弹出对话框
我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等 ...
- 【Android】Android 8种对话框(Dialog)
1.写在前面 Android提供了丰富的Dialog函数,本文介绍最常用的8种对话框的使用方法,包括普通(包含提示消息和按钮).列表.单选.多选.等待.进度条.编辑.自定义等多种形式,将在第2部分介绍 ...
- Android开发 DialogFragment对话框详解
前言 在聊DialogFragment之前,我们看看以往我们在Android里实现一个对话框一般有这几种方式: Dialog 继承重写Dialog实现一个自定义的Dialog AlertDialog ...
- Android之Builder对话框的一些常用方式
原文: http://blog.csdn.net/kkfdsa132/article/details/6322835 Android为我们提供几种对话框,主要有:AlertDialog.Progres ...
随机推荐
- 树的深度优先遍历和广度优先遍历的原理和java实现代码
import java.util.ArrayDeque; public class BinaryTree { static class TreeNode{ int value; TreeNode le ...
- Codeforces Beta Round #25 (Div. 2 Only) C. Roads in Berland
C. Roads in Berland time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- (深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack)
bss段: bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域. bss是英文Block Started by Symbol的简称. bss段属于静态内存分配. ...
- dedecms文章内页获取缩略图的调用标签
点评:文章内容页缩略图的调用,图片集内容页缩略图的调用很容易混淆,内页想调用缩略图用[filed:picname/]来实现是错误的 文章内容页缩略图的调用,图片集内容页缩略图的调用,相信大家都想找这个 ...
- [SDOI2016] 模式字符串 (BZOJ4598 & VIJOS1995)
首先直接点分+hash就可以做,每个点用hash判断是否为S重复若干次后的前缀或后缀,每个子树与之前的结果O(m)暴力合并.在子树大小<m时停止分治,则总复杂度为O(nlog(n/m)). 问题 ...
- 【CAIOJ 1178】 最长共同前缀长度
[题目链接] 点击打开链接 [算法] EXKMP [代码] #include<bits/stdc++.h> using namespace std; #define MAXL 100001 ...
- Vue之组件之间的数据传递
Vue的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据,必须使用特定的方法才能实现组件之间的数据传递. 下列为在vue-cli创建项目中的操作 一·父组件向子组件传递数据 在Vue中 ...
- Watir: Watir-WebDriver对富文本编辑器的定位于Watir是不一致的。
Watir对富文本编辑,一般可以采用b.frame().document.body.innerText = "Value you want to insert"但是Watir-We ...
- linux--安装phpcurl扩展
在UBUNTU中直接用APT包管理工具安装: apt-get install curl libcurl3 libcurl3-dev php5-curl 安装好后重启Apache服务器就行了,如果还是不 ...
- bzoj 2238 Mst —— 树剖+mn标记永久化
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2238 看了半天... 首先,想要知道每条边删除之后的替代中最小的那个: 反过来看,每条不在 ...