热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android对话框(Dialog)

网络112柳内恒在手机软件开发中,必要时对话框可以给用户一种很清晰的感觉。可是对话框的种类比较,在什么情况下应该产生什么样的对话框呢?本文

网络112 柳内恒

      在手机软件开发中,必要时对话框可以给用户一种很清晰的感觉。可是对话框的种类比较,在什么情况下应该产生什么样的对话框呢?本文列举了7种常用的对话框,供初学开发者讨论讨论。

1、主界面是7个按钮,点击不同按钮弹出不同对话框。代码及效果图以下:

1
2 3 android:id="@+id/RelativeLayout1"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent"
6 android:orientation="vertical" >
7
8 <Button
9 android:id&#61;"&#64;&#43;id/btnQueding"
10 android:layout_width&#61;"wrap_content"
11 android:layout_height&#61;"wrap_content"
12 android:layout_alignParentLeft&#61;"true"
13 android:layout_marginLeft&#61;"30dp"
14 android:text&#61;"确定" />
15
16 <Button
17 android:id&#61;"&#64;&#43;id/btnXuanZe"
18 android:layout_width&#61;"wrap_content"
19 android:layout_height&#61;"wrap_content"
20 android:layout_alignBaseline&#61;"&#64;&#43;id/btnQueding"
21 android:layout_alignBottom&#61;"&#64;&#43;id/btnQueding"
22 android:layout_marginLeft&#61;"20dp"
23 android:layout_toRightOf&#61;"&#64;&#43;id/btnQueding"
24 android:text&#61;"选择" />
25
26 <Button
27 android:id&#61;"&#64;&#43;id/btnDanXuan"
28 android:layout_width&#61;"wrap_content"
29 android:layout_height&#61;"wrap_content"
30 android:layout_alignParentRight&#61;"true"
31 android:layout_alignParentTop&#61;"true"
32 android:layout_marginRight&#61;"22dp"
33 android:text&#61;"单选" />
34
35 <Button
36 android:id&#61;"&#64;&#43;id/btnFuXuan"
37 android:layout_width&#61;"wrap_content"
38 android:layout_height&#61;"wrap_content"
39 android:layout_below&#61;"&#64;&#43;id/btnQueding"
40 android:layout_toLeftOf&#61;"&#64;&#43;id/btnXuanZe"
41 android:text&#61;"复选" />
42
43 <Button
44 android:id&#61;"&#64;&#43;id/btnLiBiao"
45 android:layout_width&#61;"wrap_content"
46 android:layout_height&#61;"wrap_content"
47 android:layout_alignLeft&#61;"&#64;&#43;id/btnXuanZe"
48 android:layout_below&#61;"&#64;&#43;id/btnXuanZe"
49 android:text&#61;"列表" />
50
51 <Button
52 android:id&#61;"&#64;&#43;id/ZiDingYi"
53 android:layout_width&#61;"wrap_content"
54 android:layout_height&#61;"wrap_content"
55 android:layout_alignBaseline&#61;"&#64;&#43;id/btnLiBiao"
56 android:layout_alignBottom&#61;"&#64;&#43;id/btnLiBiao"
57 android:layout_toLeftOf&#61;"&#64;&#43;id/btnDanXuan"
58 android:text&#61;"自定义" />
59
60 <Button
61 android:id&#61;"&#64;&#43;id/btnShuRu"
62 android:layout_width&#61;"wrap_content"
63 android:layout_height&#61;"wrap_content"
64 android:layout_alignLeft&#61;"&#64;&#43;id/ZiDingYi"
65 android:layout_alignParentTop&#61;"true"
66 android:text&#61;"输入" />
67
68

main.xml

1 package cqvie.com;
2
3 import android.app.Activity;
4 import android.app.AlertDialog;
5 import android.os.Bundle;
6 import android.view.LayoutInflater;
7 import android.view.View;
8 import android.view.View.OnClickListener;
9 import android.widget.Button;
10 import android.widget.EditText;
11
12 public class DuiHuakuanActivity extends Activity implements OnClickListener {
13 /** Called when the activity is first created. */
14 &#64;Override
15 public void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.main);
18 btnQueDing&#61;(Button)findViewById(R.id.btnQueding);//注册按钮
19 btnXuanZe&#61;(Button)findViewById(R.id.btnXuanZe);
20 btnShuRu&#61;(Button)findViewById(R.id.btnShuRu);
21 btnDanXuan&#61;(Button)findViewById(R.id.btnDanXuan);
22 btnFuXuan&#61;(Button)findViewById(R.id.btnFuXuan);
23 btnLiBiao&#61;(Button)findViewById(R.id.btnLiBiao);
24 btnZiDingYi&#61;(Button)findViewById(R.id.ZiDingYi);
25
26 btnQueDing.setOnClickListener(this);//为按钮添加侦听器
27 btnXuanZe.setOnClickListener(this);
28 btnShuRu.setOnClickListener(this);
29 btnDanXuan.setOnClickListener(this);
30 btnFuXuan.setOnClickListener(this);
31 btnLiBiao.setOnClickListener(this);
32 btnZiDingYi.setOnClickListener(this);
33 }
34 Button btnQueDing,btnXuanZe,btnShuRu,btnDanXuan,btnFuXuan,btnLiBiao,btnZiDingYi;
35 &#64;Override
36 public void onClick(View arg0) {
37 // TODO Auto-generated method stub
38 Button b&#61;(Button) arg0;
39 if(b.getId()&#61;&#61;R.id.btnQueding)
40 {
41 queding();
42 }
43 if(b.getId()&#61;&#61;R.id.btnXuanZe)
44 {
45 xuanze();
46 }
47 if(b.getId()&#61;&#61;R.id.btnShuRu)
48 {
49 shuru();
50 }
51 if(b.getId()&#61;&#61;R.id.btnDanXuan)
52 {
53 danxuan();
54 }
55 if(b.getId()&#61;&#61;R.id.btnFuXuan)
56 {
57 fuxuan();
58 }
59 if(b.getId()&#61;&#61;R.id.btnLiBiao)
60 {
61 libiao();
62 }
63 if(b.getId()&#61;&#61;R.id.ZiDingYi)
64 {
65 zidingyi();
66 }
67 }
68 }

DuiHuakuanActivity.java

2、点击“确定”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;

1 public void queding()
2 {
3 //退出确认对话框
4 AlertDialog.Builder builder&#61; new AlertDialog.Builder(this);
5 builder.setTitle("提示");
6 builder.setMessage("确定退出吗&#xff1f;");
7 builder.setPositiveButton("确认", null);
8 builder.setNegativeButton("取消",null);
9 builder.create().show();
10 }

3、点击“选择”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;

1 public void xuanze()
2 {
3 //类型于选择题的对话框
4 AlertDialog.Builder lnh&#61; new AlertDialog.Builder(this);
5 lnh.setIcon( android.R.drawable.btn_star);
6 lnh.setTitle("喜好调查");
7 lnh.setMessage("你喜欢李连杰的电影吗&#xff1f;");
8 lnh.setPositiveButton("很喜欢",null);
9 lnh.setNeutralButton("一般",null);
10 lnh.setNegativeButton("不喜欢",null);
11 lnh.create().show();
12 }

4、点击“输入”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;

1 public void shuru()
2 {
3 //带输入的对话框
4 new AlertDialog.Builder(this)
5 .setTitle("请输入")
6 .setIcon(android.R.drawable.ic_dialog_info)//设置提示图标
7 .setView(new EditText(this))
8 .setPositiveButton("确定", null)
9 .setNegativeButton("取消", null).show();
10 }

5、点击“单选”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;

1 public void danxuan()
2 {
3 //单选对话框
4 new AlertDialog.Builder(this)
5 .setTitle("单选框")
6 .setSingleChoiceItems(new String[] { "北京", "上海","重庆","天津","湖南", "湖北","江西","江苏","香港", "台湾","河南","河北" }, 0, null)
7 .setPositiveButton("确定", null)
8 .setNegativeButton("取消", null).show();
9 }

6、点击“复选”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;

1 public void fuxuan()
2 {
3 //复选对话框
4 new AlertDialog.Builder(this).setTitle("复选框")
5 .setMultiChoiceItems(new String[] { "张三", "李四","王二","麻子" }, null, null)
6 .setPositiveButton("确定", null)
7 .setNegativeButton("取消", null).show();
8 }

7、点击“列表”按钮弹出对话框&#xff0c;代码及效果图如下&#xff1a;

1 public void libiao()
2 {
3 //列表框对话框
4 new AlertDialog.Builder(this).setTitle("列表框")
5 .setItems(new String[] { "致逝去青春", "中南海保镖","叶问II" }, null)
6 .setNegativeButton("确定", null).show();
7 }

8、点击“列表”按钮弹出对话框&#xff0c;这个对话框相对来说要复杂一&#xff0c;首先我们要在layout中新建一个*.xml文件&#xff08;如&#xff1a;buju.xml&#xff09;&#xff0c;然后再调用这个文件来布局。代码及效果图如下&#xff1a;

1
2 3 android:layout_height&#61;"wrap_content" android:layout_width&#61;"wrap_content"
4 android:background&#61;"#ffffffff" android:orientation&#61;"horizontal"
5 android:id&#61;"&#64;&#43;id/buju" >
6 7 android:layout_width&#61;"wrap_content"
8 android:id&#61;"&#64;&#43;id/tvname" android:text&#61;"姓名&#xff1a;" />
9 10 android:layout_width&#61;"wrap_content" android:id&#61;"&#64;&#43;id/etname" android:minWidth&#61;"100dip"/>
11
12

buju.xml

1 public void zidingyi()
2 {
3 //自定义对话框
4 LayoutInflater inflater &#61; getLayoutInflater();
5 View layout &#61; inflater.inflate(R.layout.buju,null);
6 new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout)
7 .setPositiveButton("确定", null)
8 .setNegativeButton("取消", null).show();
9
10 }

写下这往篇博客有两个用意&#xff1a;一是为广大Android软件开发爱好者提供交流&#xff0c;二是为自己以后复习之用。

转:https://www.cnblogs.com/liuneiheng/archive/2013/05/18/3085650.html



推荐阅读
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
  • 深入解析 Android 选择器与形状绘制技术
    本文深入探讨了 Android 中选择器(Selector)与形状绘制(Shape Drawing)技术的应用与实现。重点分析了 `Selector` 的 `item` 元素,其中包括 `android:drawable` 属性的使用方法及其在不同状态下的表现。此外,还详细介绍了如何通过 XML 定义复杂的形状和渐变效果,以提升 UI 设计的灵活性和美观性。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • Android 图像色彩处理技术详解
    本文详细探讨了 Android 平台上的图像色彩处理技术,重点介绍了如何通过模仿美图秀秀的交互方式,利用 SeekBar 实现对图片颜色的精细调整。文章展示了具体的布局设计和代码实现,帮助开发者更好地理解和应用图像处理技术。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
author-avatar
唐进单
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有