android dialog对话框,Android Dialog对话框详解

2023-11-07

废话不多说了,直接给大家贴代码了。

布局文件xml:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".DialogActivity" >

android:id="@+id/plainDialog"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="普通Dialog" />

android:id="@+id/plainDialogEvent"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Dialog按钮事件集中处理" />

android:id="@+id/inputDialog"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="请输入框" />

android:id="@+id/listDialog"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="列表对话框" />

android:id="@+id/radioDialog"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="单选对话框" />

android:id="@+id/checkboxDialog"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="多选对话框" />

android:id="@+id/diyDialog"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="自定义布局对话框" />

Activity文件:

普通的dialog:

private void plainDialogDemo() {

Button plainBtn = (Button) findViewById(R.id.plainDialog);

plainBtn.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

new AlertDialog.Builder(DialogActivity.this)

.setTitle("删除")

.setMessage("确定删除指定数据")

.setPositiveButton("确定",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

Toast.makeText(getApplicationContext(),

"确定了", Toast.LENGTH_SHORT)

.show();

}

})

.setNegativeButton("取消",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

}

}).setCancelable(false).show();

}

});

}

效果如下:

8a8d8fbd91ffdac6cbe8edf6564acdd9.png

输入文本框的dialog:

private void inputDialog() {

Button inputBtn = (Button) findViewById(R.id.inputDialog);

inputBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

final EditText et = new EditText(DialogActivity.this);

new AlertDialog.Builder(DialogActivity.this)

.setTitle("请输入数字")

.setView(et)

.setPositiveButton("确定",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

// TODO Auto-generated method stub

Toast.makeText(getApplicationContext(),

et.getText(),

Toast.LENGTH_SHORT).show();

}

}).setNegativeButton("取消", null)

.setCancelable(false).show();

}

});

}

效果如下:

2c9d6aab7ca2138ff8db8901a4e60a5f.png

列表dialog:

private void listDialogDemo() {

Button listBtn = (Button) findViewById(R.id.listDialog);

listBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

final String[] names = { "C罗", "J罗", "H罗" };

new AlertDialog.Builder(DialogActivity.this).setTitle("列表对话框")

.setItems(names, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

Toast.makeText(DialogActivity.this,

names[which], Toast.LENGTH_SHORT)

.show();

}

}).setNegativeButton("取消", null).show();

}

});

}

效果如下:

a26fb029e4e7ce78bf0df2478d246312.png

单选dialog:

private void radioDialogDemo() {

Button radioButton = (Button) findViewById(R.id.radioDialog);

radioButton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

final String[] names = { "C罗", "J罗", "H罗" };

new AlertDialog.Builder(DialogActivity.this)

.setTitle("列表对话框")

.setSingleChoiceItems(names, ,

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

selecteName = names[which];

}

})

.setPositiveButton("确定",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

Toast.makeText(DialogActivity.this,

selecteName, Toast.LENGTH_SHORT)

.show();

}

}).setNegativeButton("取消", null).show();

}

});

}

效果如下:

bb551a4300753403174978e9ba509da5.png

多选dialog:

private void checkDialogDemo() {

Button checkBtn = (Button) findViewById(R.id.checkboxDialog);

checkBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

final String[] names = { "C罗", "J罗", "H罗" };

final boolean[] selected = new boolean[] { true, false, true };

new AlertDialog.Builder(DialogActivity.this)

.setMultiChoiceItems(

names,

selected,

new DialogInterface.OnMultiChoiceClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which, boolean isChecked) {

}

})

.setPositiveButton("确定",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

StringBuilder sb = new StringBuilder(

"你选择了:");

for (int i = ; i < names.length; i++) {

if (selected[i]) {

sb.append(names[i]);

}

}

Toast.makeText(DialogActivity.this,

sb.toString(), ).show();

}

}).setNegativeButton("取消", null).show();

}

});

}

效果如下:

b55a992c4fef018b9332a5a114633ef0.png

自定义dialog:

private void customDialogDemo() {

final AlertDialog dlg = new AlertDialog.Builder(this).create();

dlg.show();

Window window = dlg.getWindow();

window.setContentView(R.layout.diylayout);

ImageButton ok = (ImageButton) window.findViewById(R.id.btnok);

ok.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getApplicationContext(), "关闭了",

Toast.LENGTH_SHORT).show();

dlg.dismiss();

}

});

}

自定义布局:

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:id="@+id/dialogimg"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:src="@drawable/dialog_bg" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@id/dialogimg"

android:layout_alignTop="@id/dialogimg"

android:layout_marginLeft="dp"

android:layout_marginTop="dp"

android:text="自定义的dialog" />

android:id="@+id/btnok"

android:layout_width="dp"

android:layout_height="dp"

android:layout_alignRight="@id/dialogimg"

android:layout_alignTop="@id/dialogimg"

android:layout_marginRight="dp"

android:layout_marginTop="dp"

android:background="@drawable/close_dialog" />

效果如:

a478e8368a19f47a9b73a92dec412151.png

有关Android Dialog对话框详解小编就给大家介绍这么多,希望对大家有所帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android dialog对话框,Android Dialog对话框详解 的相关文章

  • stem课程方案

    现在人们开始关注孩子的STEM教育 为了推动这一新的教育发展势头 父母可以在激发孩子关于STEM教育及其专业可能性方面发挥重要作用 在孩子的stem教育上 父母究竟应该怎么做呢 格物斯坦小坦克来告诉你 发现孩子天生的亲和力和学习能力 每个孩
  • Unicode转Utf-8. C++ 中文字符串比较

    c 中如何比较中文字符串 假如通过TCP UDP从其他地方传过来一个UTF 8编码的中文字符串 现在需要你判断这个字符串是否是你想要的 之前的尝试 std string recv data std string my string 字符串
  • 关于数据生成二维码保存和解密删除二维码

    文章目录 前言 一 pom配置依赖 二 文件引入 1 BufferedImageLuminanceSource 2 QRCodeUtil 3 MyPicConfig 4 UploadUtils 三 测试 前言 所需文件 MyPicConfi
  • 荣耀总裁赵明:年轻人拖着世界往前走

    有限的资源聚焦一个领域 才能在纵深上发展 一点的突破可以带动一个行业的发展 赵明在演讲中提到 自认资源有限的荣耀 找准了两个基点 一个是年轻人 一个是科技 两者间相互映照 年轻人更易于接受 也更热爱科技 科技在年轻人身上会出现更强的化学反应
  • 卡诺图简单逻辑化简与五变量卡诺图化简

    一 格雷码编码规则 画卡诺图的时候需要先将所有变量可能以格雷码的形式排列在方格两侧 所有变量有2 n个 虽然我们常用的变量为四个及以下 可以熟记格雷码 但为了学习还是有必要了解格雷码的编码规则 格雷码的基本特点就是任意两个相邻的代码只有一位
  • 什么?强化学习竟然来源于心理学?

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由罗晖发表于云 社区专栏 1 Google的DQN论文 2015年2月 Google在Nature上发表了一篇论文 见附件 Human level control through
  • GO语言网络编程(并发编程)Sync

    GO语言网络编程 并发编程 Sync 1 Sync 1 1 1 sync WaitGroup 在代码中生硬的使用time Sleep肯定是不合适的 Go语言中可以使用sync WaitGroup来实现并发任务的同步 sync WaitGro
  • MySQL 数据库中的视图

    大家好 作为一名互联网行业的小白 写博客只是为了巩固自己学习的知识 但由于水平有限 博客中难免会有一些错误出现 有不妥之处恳请各位大佬指点一二 博客主页 链接 https blog csdn net weixin 52720197 spm
  • SQLServer修改表数据

    使用SSMS数据库管理工具修改数据 修改任意一条或者多条都可以 1 打开数据库 选择数据表 右键点击 编辑所有行 如未配置 点击编辑前200行 2 编辑需要修改的数据 编辑完成后 右键点击空白处 选择执行SQL即可编辑成功 使用T SQL脚
  • 【qt】在qt里调用shell脚本-实现上位机调用Detectron的推断

    qt调用shell脚本有三种方法 目的 用qt做一个界面 本质是调用写好的shell脚本 调用detectron的infer simple py文件进行样本推断并显示在界面里 遇到的问题 但是本人只有system 可以行得通 而且调用的脚本
  • 故障排除经验——笔记本电脑重启后键盘失灵的解决办法(亲测可用)

    问题描述 下午 卸载了360软件 安全卫士 软件管家 360安全浏览器 后 重启电脑 然后电脑开始硬盘扫描 检测 结果告知不能成功修复 随后 我选择 继续使用Win10 选项 就发现电脑键盘已经失灵 无法输入开机密码 一度让我抓狂 在随后的
  • 堆栈相关应用算法

    栈的压入 弹出序列 题目描述 输入两个整数序列 第一个序列表示栈的压入顺序 请判断第二个序列是否可能为该栈的弹出顺序 假设压入栈的所有数字均不相等 例如序列1 2 3 4 5是某栈的压入顺序 序列4 5 3 2 1是该压栈序列对应的一个弹出
  • 什么能力很重要: 维持自己的框架的能力

    作者 纸箱之神 链接 https www zhihu com question 305507128 answer 637314109 有人答努力 坚持 选择 自律 学习 这些都很重要 但是我觉得 还有一个能力是凌驾于所有这些答案之上的 那就
  • 使用idea创建项目的步骤

    使用idea创建项目的步骤 1 点击桌面安装好的idea 2 由于我之前创建好了 所以打开的时候直接就进去 接下来 创建idea 3 File new project 4 点击project 创建项目 5 进行下一步 6 继续下一步 7 会
  • 渲染性能优化之几种LOD层次细节总结

    CIM 城市信息模型 这种大场景或者说特大场景LOD是非常重要的 城市 BIM 地形都非常系需要 根据公司的项目需求这里做了一下总结各种LOD的技术 算法 策略 首先 我们公司对于城市这种大场景我们提出使用如下技术 1 组织 符合3Dtil
  • Kr的pandas技巧笔记

    最近在做一个数据集的可视化项目 又捡起了pandas和python 这里把实际用到的技巧干货写下来 防止忘记再次去网上各种查和看documentation 同时也分享给大家 1 找出nan项 DataFrame isnull 返回一个大小和
  • Windows中的时间(SYSTEMTIME和FILETIME)

    上一篇中介绍了C运行库中的时间处理函数 这一篇介绍Windows SDk中提供的时间函数 两种时间系统之间没有本质区别 事实上CRT时间是用Windows时间实现的 当然这是说的VC实现 同样提供本地时间和UTC时间之间的转换 不过CRT中
  • C++socket编程(二):系统socket库介绍

    什么是套接字 套接字是一个介质 由操作系统控制 下面演示下windows和linux中的socket接口建立的代码 通用 ifdef WIN32 include
  • 出现rpm: command not found

    解决方法 sudo apt get install alien 转载于 https www cnblogs com xDan p 5411083 html

随机推荐

  • fiddler抓取,Android真机测试

    1 配置Fiddler抓取并解密HTTPS包 Fiddler默认是不抓取HTTPS包的 需要进行相应的配置 打开Fiddler 选择 Tools gt Fiddler Options 2 在弹出的对话框中选择 HTTPS 选项卡 3 勾选
  • 【Jupyter】下,Tensorflow 1.8 载入 MNIST 数据集

    导入包 import tensorflow as tf from tensorflow examples tutorials mnist import input data mnist input data read data sets M
  • 前端基础3——JavaScript基础用法

    文章目录 一 基本使用 1 1 内部方式 1 2 外部导入方式 1 3 css标签调用js脚本 触发事件 二 Windows对象 2 1 对象属性 2 2 对象方法 三 数据类型 3 1 字符串处理 3 2 数组处理 3 3 对象处理 四
  • 逆水寒7.25服务器维护,逆水寒7月4日更新维护公告 角色交易功能上线

    原标题 逆水寒7月4日更新维护公告 角色交易功能上线 逆水寒7月4日更新了什么内容 7月4日正式服中加入了角色交易的新功能 另外天江之战活动也正式开启 以下来看下完整的更新公告 各位自在同门 为了保证服务器的运行稳定和服务质量 逆水寒 将于
  • 【Unity每日灵感】第二期:复刻FreeFlyCamera插件内置脚本,如何实现丝滑好用的相机漫游?

    目录 一 插件效果 相机部分 提示部分 二 步骤拆解 视角旋转 移动与升降 加速 锁定及重置 三 脚本复刻 旋转 位置变换 增加体验感的细节 栏目Up Up 专门针对我自己平日里一些在项目中使用的好玩的点子 或者尚未实现的有趣功能复刻 第二
  • 微信小程序SLAM AR零基础入门教程

    鬼灭之刃花街篇 开播在即 今天带大家零基础使用Kivicube制作一个炭治郎的SLAM AR云手办 可以通过微信小程序将AR版的炭治郎放置在家中 提前感受鬼灭的氛围 先上个GIF大家看看动态的展示效果 在这里先科普一下本次教程使用到的AR技
  • Kendo UI开发教程(19): Kendo MVVM 数据绑定(八) Style

    Style绑定可以通过ViewModel绑定到DOM元素CSS风格属性 例如 1
  • 免费云服务器

    三丰云 免费虚拟主机 免费云服务器 https www sanfengyun com 一个良心服务器 可以通过活动 免费使用 特别适合大学生或者想尝试一下后端学习的朋友 今天我就分享一下使用这个服务器的感受 首先我选着配置了 CentOS
  • 51单片机播放音乐(二):DA转换播放任意波形

    51单片机播放音乐 二 DA转换播放任意波形 原理 DA转换器 仿真电路图 音频文件转成C语言数组代码 单片机代码 仿真输出波形 本文完整源码 用数字信号带动蜂鸣器同一时间只能发出一种频率的声音 也没有和弦 会比较难听 而我们听到的音乐可以
  • PNG透明窗体全攻略(控件不透明)vc++程序指导

    这两天在研究透明窗体 总算略有小成 网上大部分文章都是介绍到把窗体弄透明就没有下文 其实窗体透明并不难 难就难在透明的窗体上还要放控件 今 天我就把窗体透明一直到控件不透明怎么制作一块给写了吧 先截张图诱惑下你们 如果你没兴趣就没必要再看下
  • stm32 使用keil无实物(软件)仿真,虚拟串口通讯

    准备 1 keil 2 vspd虚拟串口 3 sscom串口助手 4 CubeMX 哪里报错no read permission 把哪里map一下 map 0x40000000 0x400077FF read write APB1 map
  • Cocos2d摄像机详解

    Cocos2d摄像机详解 摄像机的作用 在3D系统中都会有一个摄像机的概念 物体在显示之前需要先将物体的坐标转换到视角坐标 也就是摄像机坐标 然后再投影 最后还需对投影画面进行缩放到视口显示的大小 Coscos2d x 3 x支持3D的 所
  • 接口报错500是什么意思_http500什么意思

    展开全部 http500指的是内部服务器错误 说明IIS服务器无法解析e68a84e8a2ad3231313335323631343130323136353331333433623161ASP代码 1 出现http500代码的情况 当访问网
  • 在js文件中引入(调用)另一个js文件的三种方法

    方法一 在调用文件的顶部加入下例代码 function addScript url document write 注 有时你引用的文件还可能需要引用其他的js 我们需要将需要的那个js文件也以同样的方法引用进来 方法二 在js中写如下代码
  • 最好的6个Go语言Web框架

    原文 Top 6 web frameworks for Go as of 2017 作者 Edward Marinescu 译者 roy 译者注 本文介绍截至目前 2017年 最好的6个Go语言Web框架 以下为译文 GO 语言爱好者的最佳
  • 华为OD机试 - 恢复数字序列(Java)

    题目描述 对于一个连续正整数组成的序列 可以将其拼接成一个字符串 再将字符串里的部分字符打乱顺序 如序列8 9 10 11 12 拼接成的字符串为89101112 打乱一部分字符后得到90811211 原来的正整数10就被拆成了0和1 现给
  • 【JAVA】log4j.xml详解

    Appender Appender 日志输出器 配置日志的输出级别 输出位置等 包括以下几类 ConsoleAppender 日志输出到控制台 FileAppender 输出到文件 RollingFileAppender 输出到文件 文件达
  • react:重置清除数据的方法

    描述如下 1 页面进来没有数据 只有输入条件的情况下 才能查询数据 2 查询条件有重置功能 问题 重置功能如何操作呢 数据是从 this props 中取到的 在重置的时候 1 方法一 不调接口 this props xxx 或者 this
  • 读文件 —— WEB前端读取本地文件内容哪些事(前台解析txt文件)…… – 杰儿__er 的博客 – CSDN博客...

    文章目录 隐藏 读文件 WEB前端读取本地文件内容哪些事 前台解析txt文件 参考链接 https blog csdn net pl1612127 article details 77862174可供参考的链接 https zhidao b
  • android dialog对话框,Android Dialog对话框详解

    废话不多说了 直接给大家贴代码了 布局文件xml xmlns tools http schemas android com tools android layout width match parent android layout hei