使用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实现对话框的更多相关文章

  1. Android学习笔记进阶之在图片上涂鸦(能清屏)

    Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...

  2. 【转】 Pro Android学习笔记(五七):Preferences(1):ListPreference

    目录(?)[-] 例子1ListPreference小例子 定义一个preferences XML文件 继承PreferenceActivity 用户定制偏好的读取 第一次运行时设置缺省值 设置Cat ...

  3. 【转】 Pro Android学习笔记(五六):配置变化

    目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceS ...

  4. Android 学习笔记之Volley(七)实现Json数据加载和解析...

    学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

  5. android学习笔记36——使用原始XML文件

    XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...

  6. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  7. udacity android 学习笔记: lesson 4 part b

    udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...

  8. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  9. Android学习笔记之Activity详解

    1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那 ...

随机推荐

  1. 【Java】几种典型的内存溢出案例,都在这儿了!

    写在前面 作为程序员,多多少少都会遇到一些内存溢出的场景,如果你还没遇到,说明你工作的年限可能比较短,或者你根本就是个假程序员!哈哈,开个玩笑.今天,我们就以Java代码的方式来列举几个典型的内存溢出 ...

  2. VMware虚拟机,vps忘记密码修改密码

      因为业务经常会用到虚拟机,然后过不了多久,登录密码就用不了. 解决问题有两种办法,其中一种是通过Dos命令窗:还有一个就是通过制作pe启动盘来操作,进行密码重置,删除等等. 制作pe启动盘的方式有 ...

  3. 【QT】利用pyqt5实现简单界面

    Topic: 利用pyqt5编写简单界面Env:win10 + Pycharm2018 + Python 3.6.8Date: 2019/4/29 by hw_Chen2018            ...

  4. 【题解】P6218 [USACO06NOV] Round Numbers S

    题目传送门 这是一道数位DP. 令 \(dp_{i,j,k}\) 为满足由 \(i\) 位组成,且其中有 \(j\) 个1,第 i 位(从右往左数)为 \(k\) 的二进制数的数量. 可以得出状态转移 ...

  5. Chrome自带全网页截图

    1.等待网页打开完毕 2.组合键 ctrl+shift+i 打开开发者工具 3.按 ctrl+shift+p 调出一个面板 4.输出 full 5.在下一行出现 capture full size s ...

  6. 第四篇-用Flutter手撸一个抖音国内版,看看有多炫

    前言 这次对布局进行优化,主要包含了首页tabview pageview 以及添加几个按钮的操作过程.主要使用到stack层叠布局,tabpview和pageview,tabview两个页面,一个关注 ...

  7. 2019-ICLR-DARTS: Differentiable Architecture Search-论文阅读

    DARTS 2019-ICLR-DARTS Differentiable Architecture Search Hanxiao Liu.Karen Simonyan.Yiming Yang GitH ...

  8. Rocket - debug - dm registers

    https://mp.weixin.qq.com/s/P48K17TyRoZC7xBMltbXKQ 简单介绍调试模块中每个寄存器的定义. 1. DMI_RegAddrs 记录DMI访问的各个寄存器的地 ...

  9. pip安装Python库速度慢的解决方法

    最近在写大数据文本挖掘的考查报告,需要用到 jieba切词,于是在pycharm中安装 jieba 库 首先是在 File—settings中通过搜索安装,然而安了五分钟之后还是失败了 于是通过终端输 ...

  10. Redis 入门到分布式 (八)Redis Sentinel

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) sentinel-目录 主从复制高可用 安装配置 实现原理 架构说明 客户端连接 常见开发运维问题 一. ...