Android学习笔记使用AlertDialog实现对话框
使用AlertDialog可以实现如下对话框
案例
布局问文件就加了几个Button,我直接上Java代码了
- 实现显示带取消,确定按钮的对话框按钮
Button showDialogOne = findViewById(R.id.showDialog_one);
showDialogOne.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
AlertDialog alertDialog = new
AlertDialog.Builder(MainActivity.this).create();
//创建AlertDialog对象
alertDialog.setIcon(R.drawable.apple);//设置图标
alertDialog.setTitle("一个战5渣:");//设置标题
alertDialog.setTitle("苟活性命于互联网,我太难了,是吧?");
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE,
"否", new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(
MainActivity.this, "您单击了否按钮",
Toast.LENGTH_SHORT).show();
}
});//取消按钮
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE,
"是", new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(
MainActivity.this, "您单击了是按钮",
Toast.LENGTH_SHORT).show();
}
});//取消按钮
alertDialog.show();
}
});
效果:
- 显示带列表的对话框按钮
MainActivity.java
/**********显示带列表的对话框按钮***************/
Button button2 = findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
//带4个列表项的列表对话框
final String[] items = new String[]{"当你有了钱,它会让你更专注",
"abcdefg",
"为什么我还没有钱",
"求钱若渴",
"求财若饥"};//列表数组
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//创建AlertDialog.Builder对象
builder.setIcon(R.drawable.apple);
builder.setTitle("请选择你喜欢的一句话:");
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,
"你选择了【"+items[which]+"】",Toast.LENGTH_SHORT).show();
}
});
builder.create().show();//创建并显示对话框
}
});
效果:
- 显示带单选列表的对话框
/***显示带单选列表的对话框***/
Button button3 = (Button)findViewById(R.id.button3);
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String[] items = new String[]{"乔布斯","马云","扎克伯格","陆奇"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.apple);
builder.setTitle("如果让你选择,你最想做哪一个:");
builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"您选择了【"+items[which]+"】",
Toast.LENGTH_LONG).show();
}
});
builder.setPositiveButton("确定",null);
builder.create().show();//创建并显示对话框
}
});
- 显示带多选列表项的对话框按钮
Button button4 = findViewById(R.id.button4);
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final boolean[] checkedItems = new boolean[]{false,false,true};//记录各列表项的状态
final String[] items = new String[]{"开心消消乐","球球大作战","王者荣耀"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("请选择您喜爱的游戏:");//设置标题
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
checkedItems[which] = isChecked;//改变被操作列表的状态
}
});//添加列表项
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String result = "";//记录结果的字符串
for(int i=0;i<checkedItems.length;i++){
if(checkedItems[i]){
result += items[i]+"、";//把选择项的内容添加到result中
}
}
if(!"".equals(result)){
Toast.makeText(MainActivity.this,
"您选择了["+result+"]",Toast.LENGTH_SHORT).show();
}
}
});
builder.create().show();
}
});
}
总结
Android学习笔记使用AlertDialog实现对话框的更多相关文章
- Android学习笔记进阶之在图片上涂鸦(能清屏)
Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...
- 【转】 Pro Android学习笔记(五七):Preferences(1):ListPreference
目录(?)[-] 例子1ListPreference小例子 定义一个preferences XML文件 继承PreferenceActivity 用户定制偏好的读取 第一次运行时设置缺省值 设置Cat ...
- 【转】 Pro Android学习笔记(五六):配置变化
目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceS ...
- Android 学习笔记之Volley(七)实现Json数据加载和解析...
学习内容: 1.使用Volley实现异步加载Json数据... Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...
- android学习笔记36——使用原始XML文件
XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...
- Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...
- udacity android 学习笔记: lesson 4 part b
udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...
- Android学习笔记36:使用SQLite方式存储数据
在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...
- Android学习笔记之Activity详解
1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那 ...
随机推荐
- JUC(4)---java线程池原理及源码分析
线程池,既然是个池子里面肯定就装很多线程. 如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁 线程,如此一来会大大降低系统的效率.可能出现服务器在为每个请求创建新线程和销毁 ...
- php 序列化
PHP serialize() 函数 serialize() 函数用于序列化对象或数组,并返回一个字符串. serialize() 函数序列化对象后,可以很方便的将它传递给其他需要它的地方,且其类型和 ...
- oracle计算两日期相差多少秒,分钟,小时,天,周,月,年
--计算两个时间差相差多少秒select ceil((sysdate-t.transdate)* 24 * 60 * 60),t.transdate,sysdate from esc_trans_lo ...
- Jumpserver-跳板机的搭建
Jumpserver堡垒机 一.Jumpserver堡垒机概述-部署Jumpserver运行环境 01 跳板机概述 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登 ...
- 项目readme文件目录生成工具 treer
生成目录的工具呢有tree和treer,但是tree不知道怎么忽略node_modules文件夹, 而treer就简单了,下面就是基本的命令了 其中-i是指忽略xxx, -e是指导出 安装 npm i ...
- Java IO(二十) PrintStream 和 DataOutputStream 异同
Java IO(二十) PrintStream 和 DataOutputStream 异同 一.相同点 都是继承与FileOutputStream,用于包装其它输出流. 二.不同点 (一).Print ...
- Servlet配置及生命周期
1.设置Ecilipse快捷 file new 2.创建Servlet程序 1). 创建一个 Servlet 接口的实现类. public class HelloServl ...
- 【CTFHUB】Web技能树
Web HTTP协议 请求方式
- Alpha冲刺 —— 5.7
这个作业属于哪个课程 软件工程 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 Alpha冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.展 ...
- HDL-数字电路建模的要点
https://mp.weixin.qq.com/s/tEDMWf1gk0e7u4hIWKM9bQ 一. 拓扑 数字电路的拓扑抽象出来之后比较简单,就是线(Wire)和开关(Swit ...