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的生命周期是指从屏幕上显示那 ...
随机推荐
- python+selenium实现百度关键词搜索自动化操作
缘起 之前公司找外面网络公司做某些业务相关关键词排名,了解了一下相关的情况,网络公司只需要我们提供网站地址和需要做的关键词即可,故猜想他们采取的方式应该是通过模拟用户搜索提升网站权重进而提升排名. 不 ...
- 关于Tensorflow基于Windows安装那些事儿
声明:代码及博客小白一枚,如有错误,感谢指正~~ 众所周知,摘抄来温习一遍: Tensorflow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes) ...
- [JavaWeb基础] 032.第三方插件pinyin4j的使用
突然发现了一个比较新奇的插件,就是可以把我们输入的汉字,输出它所有的拼音的jar包.下面以代码的形式简单的介绍下这个插件 package com.babybus.sdteam.pinyin4j; im ...
- [工具-008] C#邮件发送系统
邮件发送系统很多,但是我这边给大家展示下我最近开发的一款邮件发送系统,有参照网上的一个兄弟的界面,进行了升级,界面如下. 从界面上我们可以看到了该邮件系统有如下功能: 1)服务器的设置 2)发件人的设 ...
- MP4视频流base64数据转成Blob对象
网上一大堆对图片base64转Blob.File的方法 很少有视频mp4转的,可能是因为原理相同的原因吧!但在项目中针对视频流base64转Blob对象时,花了好长时间才成功,特专门记录一下! APP ...
- BUUCTF WEB-WP(3)
BUUCTF WEB 几道web做题的记录 [ACTF2020 新生赛]Exec 知识点:exec命令执行 这题最早是在一个叫中学生CTF平台上看到的类似,比这题稍微要复杂一些,多了一些限制(看看大佬 ...
- CORS漏洞利用检测和利用方式
CORS全称Cross-Origin Resource Sharing, 跨域资源共享,是HTML5的一个新特性,已被所有浏览器支持,不同于古老的jsonp只能get请求. 检测方式: 1.curl访 ...
- python winreg总结
注册表 结构 注册表由键(key,或称“项”).子键(subkey,子项)和值项(value)构成.一个键就是树状数据结构中的一个节点,而子键就是这个节点的子节点,子键也是键.一个值项则是一个键的一条 ...
- Codeforces Round #646 (Div. 2)【C. Game On Leaves 题解】
题意分析 关于这道题,意思就是两个人摘叶子,谁最后摘到编号为x的谁就赢了.既然是叶子,说明其最多只有一个分支,由于题目上说了是无向图,那就是度数小于等于的节点.也就是一步步移除度数小于等于的节点,直到 ...
- Rocket - debug - Periphery
https://mp.weixin.qq.com/s/uGxn-Xec0LkwdaSsCtQBvw 简单介绍Periphery的实现. 1. ExportDebugDMI/ExportDebugJTA ...