我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框。当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢? 
    幸运的是,Android提供了这种问题的解决方案,刚开始接触android的时候,我在做一个自定义对话框的时候,也是通过继承的方式来实现,后来随着对文档了解的深入,发现了android起始已经提供了相应的接口Dialog Builder ,下面我就吧相关的内容在这里分享一下,也能让更多的初学者少走弯路。

首先是一个最简单的应用,就是弹出一个消息框,在android中可以这样实现<textarea cols="50" rows="15" name="code" class="Java"></textarea>

 

<textarea cols="50" rows="15" name="code" class="java">1 new AlertDialog.Builder(self) 2 .setTitle("标题") 3 .setMessage("简单消息框") 4 .setPositiveButton("确定", null) 5 .show();</textarea>

效果如下:

上面的代码中我们新建了一个AlertDialog,并用Builder方法形成了一个对象链,通过一系列的设置方法,构造出我们需要的对话框,然后调用show方法显示出来,注意到Builder方法的参数 self,这个其实是Activity对象的引用,根据你所处的上下文来传入相应的引用就可以了。例如在onCreate方法中调用,只需传入this即可。

下面是带确认和取消按钮的对话框

  1. <textarea cols="50" rows="15" name="code" class="java:firstline[1]">new AlertDialog.Builder(self) .setTitle("确认") .setMessage("确定吗?") .setPositiveButton("是", null) .setNegativeButton("否", null) .show();</textarea>

复制代码

注意到,这里有两个null参数,这里要放的其实是这两个按钮点击的监听程序,由于我们这里不需要监听这些动作,所以传入null值简单忽略掉,但是实际开发的时候一般都是需要传入监听器的,用来响应用户的操作。

下面是一个可以输入文本的对话框

  1. <textarea cols="50" rows="15" name="code" class="java">new AlertDialog.Builder(self) .setTitle("请输入") .setIcon(android.R.drawable.ic_dialog_info) .setView(new EditText(self)) .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show();</textarea>


如上代码,我们用setView方法,为我们的对话框传入了一个文本编辑框,当然,你可以传入任何的视图对象,比如图片框,WebView等。。尽情发挥你的想象力吧~:lol

下面是单选框与多选框,也是非常有用的两种对话框

  1. <textarea cols="50" rows="15" name="code" class="java">new AlertDialog.Builder(self) .setTitle("请选择") .setIcon(android.R.drawable.ic_dialog_info) .setSingleChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, 0, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } } ) .setNegativeButton("取消", null) .show();</textarea>


  1. <textarea cols="50" rows="15" name="code" class="java"> new AlertDialog.Builder(self) .setTitle("多选框") .setMultiChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, null, null) .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show();</textarea>


单选和多选对话框应该是我们平时用的非常多的,代码应该很好理解,下面再最后介绍两个、

列表对话框

  1. <textarea cols="50" rows="15" name="code" class="java">new AlertDialog.Builder(self) .setTitle("列表框") .setItems(new String[] {"列表项1","列表项2","列表项3"}, null) .setNegativeButton("确定", null) .show();</textarea>


最后,在对话框中显示图片

  1. <textarea cols="50" rows="15" name="code" class="java">ImageView img = new ImageView(self); img.setImageResource(R.drawable.icon); new AlertDialog.Builder(self) .setTitle("图片框") .setView(img) .setPositiveButton("确定", null) .show();</textarea>


我们传入了一个ImageView来显示图片,这里显示了一个经典的android小绿人图标~ ~,当然这里还可以放上网络图片,具体的实现方法就不介绍了,留给大家来练习吧~:lol

最后总结一下,android平台为我们开发提供了极大的便利,DialogBuilder能做的不止这些,这里给大家展示的只是冰山一角,我们可以尽情的发挥想象,创造我们自己的对话框。

转载于:https://www.cnblogs.com/to-creat/p/5677987.html

常用的android弹出对话框相关推荐

  1. android 弹窗有边框_常用的android弹出对话框

    我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等 ...

  2. android 弹出对话框时显示键盘

    今天,简单讲讲如何在弹出自定义的对话框时,弹出软键盘. 之前,我讲了如何制作自定义的对话框,现在,如果在弹出对话框时,自动弹出软键盘,将光标直接聚焦到自定义对话框的输入框内,那该怎么做呢? 在网上搜索 ...

  3. android弹出对话框

    最近因为项目需求,要在一个service上面弹出一个菜单,菜单响应select事件,所以花了点时间把android弹出Dialog的各种方式都看了一下. 目前学习到的android有三种方式弹出对话框 ...

  4. 经常使用的android弹出对话框

    我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其它平台开发经验的朋友都会知道,大部分的平台都仅仅提供了几个最简单的实现,假设我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承 ...

  5. Android 弹出对话框怎么做?(小白速成9)

    之前我们讲过弹出信息toast,但是toast并不允许用户进行交互,例如选择确定.取消等操作.所以我们还需要学习对话框的制作.对话框就是在程序运行中的弹出窗口,主要分为:警告对话框.进度对话框.日期选 ...

  6. Android 弹出对话框

    为什么80%的码农都做不了架构师?>>>    new AlertDialog.Builder(MainActivity.this).setTitle("系统提示" ...

  7. javascript--弹出对话框 四种对话框 获得用户输入值 .

    让用户点击确定 取消.让用户输入值.打开指定窗口 alert("message") confirm("message") prompt("messag ...

  8. javascript 弹出对话框

    首先我想先说两句我对javascript的一些看法,我希望大家认真的去学习这门编程语言,因为它给我们在开发网页时,会带来很多的惊喜!javascript一般是运行在客户端的(client),主要用于开 ...

  9. java前端 js弹出框_js 弹出对话框3种方式

    js 弹出对话框3种方式 (2012-12-03 16:10:47) 标签: it javascript js 弹出对话框3种方式对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认 ...

最新文章

  1. bootstrap-less源码分析:容器
  2. mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存
  3. boost::multiprecision模块cpp_complex相关的测试程序
  4. ReenTrantLock可重入锁(和synchronized的区别)总结
  5. [Java] 蓝桥杯ADV-170 算法提高 数字黑洞
  6. 二分法05:搜索旋转排序数组
  7. Spring MVC请求-响应流
  8. Mac Appium 安装
  9. PDF怎么翻译成中文?这些方法值得收藏
  10. 图像识别与软件自动化测试
  11. 彻底清除VMware快照的方法
  12. CAN 总线的常用拓扑
  13. javaee实验:使用mvc模式 设计一个图书管理系统
  14. 同时使用scanf()函数和getchar()函数无法输入字符串的问题
  15. 【渝粤题库】陕西师范大学202521中国古代文学(三) 作业(高起专)
  16. 深度学习框架——学习入门
  17. 前端面试查漏补缺--(三) 跨域及常见解决办法
  18. 嵌入式系统工程师的职位要求,你还差多少?
  19. 深入理解java多态没有烤山药的存在,java就不香了吗?
  20. 有哪些网站,一旦知道,你就离不开了

热门文章

  1. Xcode Cocoa程序MessageBox 弹框
  2. BZOJ-2780 Sevenk Love Oimaster(广义后缀自动机)
  3. #1403 : 后缀数组一·重复旋律 (可重叠最长重复K次子串问题)
  4. java 万年历_非常实用的java万年历制作方法
  5. Linux下的shell语言编程入门
  6. kali linux下安装TOR
  7. mac 设计表结构_模具设计丨问题点检表、全套标准件结构分布,值得转发
  8. 树状数组c语言模板,【树状数组】Cows (POJ2481) PASCAL 解题报告
  9. c语言5v电源电路工作原理,稳压电源电路图详解_5v稳压电源电路原理图
  10. 最全面 Nginx 入门教程 + 常用配置解析