`
endual
  • 浏览: 3506740 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Android 自定义对话框 控件

 
阅读更多

Android中AlertDialog.Builder详细对话框控件的使用说明

出处:互联网 时间:2011年12月12日 作者:admin 字号: 【字体:  】 浏览次数:5482
    我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等 

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

   首先是一个最简单的应用,就是弹出一个消息框,在android中可以这样实现

new AlertDialog.Builder(self)
.setTitle("标题") 
.setMessage("简单消息框")
.setPositiveButton("确定", null)
.show();

效果如下:

点击浏览下一页

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

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

new AlertDialog.Builder(self) 
.setTitle("确认")
.setMessage("确定吗?")
.setPositiveButton("是", null)
.setNegativeButton("否", null)
.show();

点击浏览下一页

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

new AlertDialog.Builder(self)
.setTitle("请输入")
.setIcon(android.R.drawable.ic_dialog_info)
.setView(new EditText(self))
.setPositiveButton("确定", null)
.setNegativeButton("取消", null)
.show();

点击浏览下一页

如上代码,我们用setView方法,为我们的对话框传入了一个文本编辑框,当然,你可以传入任何的视图对象,比如图片框,WebView等。。尽情发挥你的想象力吧~
下面是单选框与多选框,也是非常有用的两种对话框:
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();
<0>点击浏览下一页
new AlertDialog.Builder(self)
.setTitle("多选框")
.setMultiChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, null, null)
.setPositiveButton("确定", null) 
.setNegativeButton("取消", null)
.show();
点击浏览下一页
单选和多选对话框应该是我们平时用的非常多的,代码应该很好理解,下面再最后介绍两个
列表对话框:
new AlertDialog.Builder(self)
.setTitle("列表框")
.setItems(new String[] {"列表项1","列表项2","列表项3"}, null)
.setNegativeButton("确定", null)
.show();

点击浏览下一页

最后,在对话框中显示图片:
ImageView img = new ImageView(self);
img.setImageResource(R.drawable.icon);
new AlertDialog.Builder(self)
.setTitle("图片框")
.setView(img)
.setPositiveButton("确定", null)
.show();
点击浏览下一页
我们传入了一个ImageView来显示图片,这里显示了一个经典的android小绿人图标~ ~,当然这里还可以放上网络图片,具体的实现方法就不介绍了,留给大家来练习吧~
最后总结一下,android平台为我们开发提供了极大的便利,DialogBuilder能做的不止这些,这里给大家展示的只是冰山一角,我们可以尽情的发挥想象,创造我们自己的对话框。
分享到:
评论

相关推荐

    android漂亮的自定义对话框控件

    android漂亮的自定义对话框控件,完全可执行代码,里面附效果图,无论自己使用还是代码参考都比较有意义。

    Android例子源码自定义对话框.zip

    android 自定义对话框,分别演示了系统对话框和自定义的对话框,可以学习一下自定义控件,有需要的朋友可以自己下载研究一下,编码GBK编译版本2.3.3

    一个包含sqlite,listview操作,自定义对话框,日历控件的android项目

    这是我自己做的一个小项目,使用到了sqlite数据库插入与读取,listview的长按事件,自定义对话框,日历控件的使用

    自定义对话框

    提供一个自定义dialog控件,可以自定义设置样式,标题,控制功能

    PromptBox.rar

    这个代码对应Android基础篇-对话框总结(普通对话框,单选框,多选框,自定义对话框)这篇博客上所有代码,免费下载,以调试可以正常运行。

    Android中自定义对话框(Dialog)的实例代码

    可以自己封装一个类,继承自Dialog或者直接使用Dialog类来实现,为了方便以后重复使用,建议自己封装一个Dialog类 第一步: 我们知道Android定义个控件或View的样式都是通过定义其style来实现的,查看Android框架...

    自定义单选,多选对话框(android)

    史上最强的自定义单选多选对话框 可作为UI模板应用于项目中 少量改动即可实现定制 史上最强的自定义单选多选对话框 可作为UI模板应用于项目中 少量改动即可实现定制

    Android高仿IOS和QQ弹出自定义对话框

    我们知道Android中其实并不提供圆形的东西,像Button,TextView,EditView等等都是没有弧形元素在里面(看看这些控件的属性就知道了)......详细请参见本从的博客:...

    自定义控件和手机安全助手

    custom工程演示了App开发的自定义控件相关知识,包括:自定义视图的步骤(声明属性、构造对象、测量尺寸、绘制视图)、自定义简单动画(任务片段、下拉刷新动画、圆弧进度动画)、自定义对话框的操作(对话框、改进...

    自定义组合控件之选择对话框

    自定义组合控件之选择对话框 自定义组合控件之选择对话框

    Android自定义由底部弹出对话框项目源码

    该资源为本人编写的Android自定义由底部弹出对话框项目,具体描述可查看本人博客《Android安卓自定义由底部弹出对话框》:(开发中遇到一个日期选择器的需求,就是界面中有两段文本显示日期,点击之后从底部弹出日期...

    Android自定义控件实现万能的对话框

    下面来看自定义对话框的样式: 图1:自定义提示对话框 图2:自定义警告对话框 图3:默认提示对话框 图4:默认警告对话框 这里面带来了两种对话框的样式,也是比较常见的。以上所有的背景颜色,文字颜色,以及按钮...

    Android——自定义控件(跑马灯实例)

    说到自定义控件,自定义控件不仅能够让自己对控件的掌握更加熟悉,还可以实现很多功能,同时也可以节省出很多的时间! 人生中第一篇博客便是关于TextView跑马灯的实现,但是随着知识的增多,实现一些功能的方式方法...

    Android自定义弹窗提醒控件使用详解

    Android中原生的Dialog弹窗提醒控件样式单一,有时候并不能满足我们的项目需求,而且一个工程里面有时候会...1、自定义对话框的背景样式,在res/values/styles.xml文件中定义如下样式: &lt;style name=alertdialog_th

    android开发入门与实战(下)

    7.7 友好地互动交流——对话框(Dialog)介绍与实例 7.8 温馨的提醒——Toast和Notification应用 7.8.1 实例操作演示 7.8.2 实例编程实现 7.9 本章小结 第8章 移动信息仓库——Android的数据存储操作 8.1 Android数据...

    android 自定义时间日期弹出对话框

    能够在一个对话框中弹出时间和日期,合并了DatePicker和TimePicker,解决android自带控件只能弹出时间货日期的问题。 使用方法: EditText et= (EditText) findViewById(R.id.qx_type); et.setOnClickListener(new ...

    Android菊花对话框,菊花进度条

    自定义控件,包含菊花进度条和菊花对话框,使用的是多个菊花图片做成动画的效果,使用比较简单

    简单封装的对话框控件

    作者andyxialm,源码ColorDialog,简单封装的对话框控件 ColorDialog & PromptDialog,提供多种形式的对话框; 提供默认的进出动画, 支持自定义动画。

Global site tag (gtag.js) - Google Analytics