转载于http://blog.csdn.net/chenlei1889/article/details/6267406
我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框。当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢?
幸运的是,android提供了这种问题的解决方案,刚开始接触android的时候,我在做一个自定义对话框的时候,也是通过继承的方式来实现,后来随着对文档了解的深入,发现了android起始已经提供了相应的接口Dialog Builder ,下面我就吧相关的内容在这里分享一下,也能让更多的初学者少走弯路。
首先是一个最简单的应用,就是弹出一个消息框,在android中可以这样实现
- 1
- new AlertDialog.Builder(self)
- 2
- .setTitle("标题")
- 3
- .setMessage("简单消息框")
- 4
- .setPositiveButton("确定", null)
- 5
- .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等。。尽情发挥你的想象力吧~:lol
下面是单选框与多选框,也是非常有用的两种对话框
-
- 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();
-
- 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小绿人图标~ ~,当然这里还可以放上网络图片,具体的实现方法就不介绍了,留给大家来练习吧~:lol
最后总结一下,android平台为我们开发提供了极大的便利,DialogBuilder能做的不止这些,这里给大家展示的只是冰山一角,我们可以尽情的发挥想象,创造我们自己的对话框。
相关推荐
在Android开发中,创建弹出单选框是常见的交互设计,用于向用户展示有限的选项并获取他们的选择。本文将详细讲解如何实现一个弹出单选框的示例,其中包括如何选择将文本内容通过短信、邮件或剪贴板输出。 首先,...
在Android开发中,弹出框...总之,Android弹出框是与用户交互的重要工具,根据需求选择合适类型的弹出框并进行定制,可以极大地提升用户体验。理解并熟练运用这些弹出框类型,对于Android开发者来说是至关重要的。
在Android应用开发中,标题栏(Toolbar)上弹出提示框是常见的交互设计,用于向用户展示临时信息或提供简短的操作选项。本教程将详细讲解如何使用PopupWindow实现这样的功能,并添加动画效果,以提升用户体验。...
在Android应用开发中,"底部弹出框"是一种常见的用户界面元素,用于向用户提供临时性的交互选项或信息展示。这种设计通常会出现在屏幕底部,并在用户完成操作后消失。"可自定义布局的底部弹出框"允许开发者根据应用...
在Android开发中,用户体验是至关重要的,而"android弹出框和加载等待"就是提升用户体验的重要手段之一。本文将深入探讨这两个概念,并提供实现自定义弹出框和加载等待效果的方法。 首先,让我们来理解一下Android...
android蓝牙使用,弹出框选择,获取名字和地址
在Android应用开发中,创建一个类似QQ的底部弹出框选择头像的功能涉及到多个关键知识点。这个功能允许用户选择头像,既可以打开相机拍摄新照片,也可以从本地图库选取已有图片,并提供图像剪切功能以调整图片大小。...
在Android开发中,创建引人注目的用户界面是至关重要的,而弹出框作为与用户交互的一种常见方式,其设计和实现方式直接影响到用户体验。本篇文章将深入探讨如何使用动画来实现一个精美的弹出框,类似易信应用中的...
本教程将详细讲解如何在Android应用中实现长按View弹出选项框的功能。 首先,你需要创建一个`PopupMenu`对象。`PopupMenu`类是Android SDK提供的用于创建弹出菜单的工具。在长按事件的监听器中实例化这个对象: ``...
本篇文章将深入探讨如何使用JS模拟Android系统的弹出提示框,实现更友好的交互设计。 首先,我们需要了解`alert()`的基本用法。`alert()`是JavaScript中的一个全局函数,用于显示一个带有可选消息和OK按钮的警告...
本教程将聚焦于如何在Android应用中实现一个自定义的弹出多选框,并实现全选功能。这个自定义组件可以用于让用户在一组选项中进行多项选择,如设置、过滤等场景。 首先,我们需要创建一个新的布局文件来设计多选框...
在"android 自定义退出提示弹出框"这个场景中,开发者可能会根据应用风格选择`Dialog`或`PopupWindow`。如果希望用户有强烈的感知,使用`Dialog`可能更合适;如果希望保持界面简洁,不打断用户当前操作,`...
以上就是创建一个自定义Android弹出框的基本过程,其中`MyCommonDialog`可能是你在项目中创建的一个自定义Dialog类,包含了上述步骤的实现。通过这样的方式,你可以根据自己的设计和业务逻辑,打造出具有独特风格和...
总结,Android弹出框是与用户交互的重要手段,开发者需要根据需求选择合适的弹出框类型,并灵活运用其提供的各种方法来自定义界面和行为,确保与用户进行有效且友好的沟通。在实践中,理解并掌握这些知识点对于提升...
在Android开发中,自定义弹出框是一种常见的需求,它能提供更加个性化和与应用风格一致的用户体验。本文将深入探讨如何在Android中实现自定义弹出框,并以"CustomDialog"为例,介绍其实现过程。 首先,Android系统...
"android日期选择弹出框"就是一个解决此类需求的解决方案。它使用了一个开源组件,叫做`wheel`,来实现年、月、日的滚动选择,并且能够通过回调将用户选定的日期值返回到应用中。 `wheel`组件是一种常见的UI控件,...
react-native 类似于ios的底部弹出选择框,支持android和ios
在Android开发中,有时我们需要创建一个弹出式对话框来与用户进行交互,但不同于常见的`Dialog`类,我们可以利用`Activity`来实现这一功能。这种方式适用于需要更复杂交互或者自定义布局的情况。本文将详细讲解如何...
下面将详细探讨Android弹出窗口的相关知识点。 1. **PopupWindow的基本使用** - 创建PopupWindow:首先,我们需要创建一个PopupWindow实例,传入一个View作为其内容视图,宽度和高度。例如: ```java View ...
一个动态的弹出框,可以做动态提示什么的,自定义布局放入就可以。使用非常简单,并且做了性能上的优化,内存占用较小。但是发现个长时间弹出内存会升高,暂未发现原因