版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、【Android】Dialog 对话框各种式样的制作 2011-06-10 09:58我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框。当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢? 幸运的是,android提供
2、了这种问题的解决方案,刚开始接触android的时候,我在做一个自定义对话框的时候,也是通过继承的方式来实现,后来随着对文档了解的深入,发现了android起始已经提供了相应的接口Dialog Builder ,下面我就吧相关的内容在这里分享一下,也能让更多的初学者少走弯路。 1. 首先是一个最简单的应用,就是弹出一个消息框,在android中可以这样实现new AlertDialog.Builder(self).setTitle("标题").setMessage("简单消息框").setPositiveButton(&qu
3、ot;确定", null).show();复制代码效果如下: INCLUDEPICTURE " * MERGEFORMAT 上面的代码中我们新建了一个AlertDialog,并用Builder方法形成了一个对象链,通过一系列的设置方法,构造出我们需要的对话框,然后调用show方法显示出来,注意到Builder方法的参数 self,这个其实是Activity对象的引用,根据你所处的上下文来传入相应的引用就可以了。例如在onCreate方法中调用,只需传入this即可。 2. 下面是带确认和取消按钮的对话框new AlertDialog
4、.Builder(self).setTitle("确认").setMessage("确定吗?").setPositiveButton("是", null).setNegativeButton("否", null).show();复制代码 注意到,这里有两个null参数,这里要放的其实是这两个按钮点击的监听程序,由于我们这里不需要监听这些动作,所以传入null值简单忽略掉,但是实际开发的时候一般都是需要传入监听器的,用来响应用户的操作。 3. 下面是一个可以输入文本的对话框new Ale
5、rtDialog.Builder(self).setTitle("请输入").setIcon(android.R.drawable.ic_dialog_info).setView(new EditText(self).setPositiveButton("确定", null).setNegativeButton("取消", null).show();复制代码 如上代码,我们用setView方法,为我们的对话框传入了一个文本编辑框,当然,你可以传入任何的视图对象,比如图片框,WebView等。尽情发挥你的想象力吧 4
6、. 下面是单选框与多选框,也是非常有用的两种对话框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(DialogIn
7、terface dialog, int which) dialog.dismiss();).setNegativeButton("取消", null).show(); .new AlertDialog.Builder(self).setTitle("多选框").setMultiChoiceItems(new String "选项1","选项2","选项3","选项4", null, null).setPositiveButton("确定", nu
8、ll).setNegativeButton("取消", null).show(); 单选和多选对话框应该是我们平时用的非常多的,代码应该很好理解,下面再最后介绍两个、 5. 列表对话框new AlertDialog.Builder(self).setTitle("列表框").setItems(new String "列表项1","列表项2","列表项3", null).setNegativeButton("确定", null) 6.
9、160;最后,在对话框中显示图片ImageView img = new ImageView(self);img.setImageResource(R.drawable.icon);new AlertDialog.Builder(self).setTitle("图片框").setView(img).setPositiveButton("确定", null).show(); 我们传入了一个ImageView来显示图片,这里显示了一个经典的android小绿人图标,当然这里还可以放上网络图片.7.信息内容是自定义的1.布局文件<?xml ver
10、sion="1.0" encoding="utf-8"?><LinearLayout xmlns:android="android:layout_height="wrap_content" android:layout_width="wrap_content"android:background="#ffffffff" android:orientation="horizontal"android:id="+id/dialog">
11、;<TextView android:layout_height="wrap_content"android:layout_width="wrap_content"android:id="+id/tvname" android:text="姓名:" /><EditText android:layout_height="wrap_content"android:layout_width="wrap_content" android:id="+id/etname" android:minWidth="100dip"/></LinearLayout>2.调用代码LayoutInflater inflater = getLayoutInflater();View layout = inflater.inflate(R.layout.dialog,(ViewGroup) findViewById(R.id.dialog);new AlertDialog.Builder(this).setTitle("自定义布局").setV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学文化产业管理(文化产业研究)试题及答案
- 2025年中职电子电器应用与维修(应用维修技术)试题及答案
- 2026年绿色甲醇项目公司成立分析报告
- 多源健康信息整合与个体化决策
- 2025年中职云计算技术应用(云计算部署)试题及答案
- 多民族地区ICU终末期决策的文化适配策略
- 2026年口腔修复(义齿护理)试题及答案
- 2025年中职园艺技术(绿植养护)试题及答案
- 2025年高职(道路桥梁工程技术)桥梁设计综合测试题及答案
- 2025年大学烹饪(食品营养学)试题及答案
- DB3402-T 57-2023 医院物业服务规范
- 腰椎间盘突出患者术后护理课件
- 医院护理培训课件:《高压氧临床的适应症》
- 校服采购投标方案
- 固定修复基础理论-固位原理(口腔固定修复工艺课件)
- 合同能源管理培训讲义
- dd5e人物卡可填充格式角色卡夜版
- 剪映电脑版使用说明教程
- 腱鞘囊肿日间手术
- 标准化预制梁场验收表
- JJG 30-2012通用卡尺
评论
0/150
提交评论