我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框。当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢?
幸运的是,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(DialogInterfacedialog,
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();
最后,在对话框中显示图片
-
- ImageViewimg= newImageView(self);
-
img.setImageResource(R.drawable.icon);
- new AlertDialog.Builder(self)
- .setTitle("图片框" )
-
.setView(img)
- .setPositiveButton("确定" ,
null )
-
.show();
我们传入了一个ImageView来显示图片,这里显示了一个经典的android小绿人图标~ ~,当然这里还可以放上网络图片,具体的实现方法就不介绍了,留给大家来练习吧~:lol
最后总结一下,android平台为我们开发提供了极大的便利,DialogBuilder能做的不止这些,这里给大家展示的只是冰山一角,我们可以尽情的发挥想象,创造我们自己的对话框。
分享到:
相关推荐
android蓝牙使用,弹出框选择,获取名字和地址
使用js alert函数弹出提示框,让界面看上去相对不友好,本代码实现了模拟android系统提示功能,弹出一个渐变的提示框提示信息,相当友好!
一个动态的弹出框,可以做动态提示什么的,自定义布局放入就可以。使用非常简单,并且做了性能上的优化,内存占用较小。但是发现个长时间弹出内存会升高,暂未发现原因
具体使用方法参考:http://blog.csdn.net/gaojinyu521748/article/details/37833305
android弹出提示对话框,在很多布局文件中会用到
弹出框样式的载入视图效果。项目地址:https://github.com/saiwu-bigkoo/Android-SVProgressHUD 效果图:如何使用使用超简单:SVProgressHUD.show(context);ok.另外,还有其他方式打开:比如,有关遮挡背景的:...
android 弹出提示框的使用(图文实例),需要的朋友可以参考一下
在具有搜索功能的App应用中,为了方便大家说搜索。在输入内容时经常会有提示性的内容。 本代码主要使用AutoCompleteTextView控件实现智能提示信息的功能。
使用kotlin的扩展函数实现,漂亮的对话框(弹出框),使用非常的简单,非常的好用!!!!!!使用kotlin的扩展函数实现,漂亮的对话框(弹出框),使用非常的简单,非常的好用!!!!!!
在Android开发中 我们经常会需要在Android界面上弹出一些对话框 比如询问用户或者让用户选择 关于Android Dialog的使用方法 已经有很多blog做出了详细的介绍(比如博客:7种形式的Android Dialog使用举例) 但是只是...
这是一个Android使用Dialog制作popWindow气泡提示框的源代码例子,气泡提示是主动弹出,您可以通过此源码学习制作气泡view、气泡dialog、气泡显示内容的自定义,获取屏幕的宽和高,一些初始化代码: //设置...
继承它你能够获得一个简单强大可设置的操作栏,以及一系列的简单调用,如弹出框,提示框,进度框,副操作栏等。 4.提供效率较高图片缓存管理策略,使内存大幅度节省,利用率提高,效率提高。 程序中要管理大量的图片...
下载后导入到Eclipse中,然后作为Library引入到自己的工程中,直接作为第三方控件使用。 测试代码: <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android xmlns:tools=...
Android 下拉列表 可手动输入,精简过的,很简单,直接可以使用的.
登录操作实现了自动登录,记住密码,用户名下拉框选择删除。是greenDao+popopwindow结合使用实现的。
还在为 ActivityCompat.shouldShowRequestPermissionRationale(Activity, String) 无法弹出权限申请对话框困惑么?Permissions4M 让它必须弹出来 还在为明明授权失败,却回调的是权限申请成功方法而苦恼么? ...
在开发 App 的时候,经常会使用到对话框(又叫消息框、提示框、告警框)。 在web开发中经常会用得到。今天就来介绍了一下react-native 封装弹出框 之前看到react-native-image-picker中自带了一个选择器,可以选择...
而其中弹出式提示框的定制尤为常见,本篇我们将从模仿QQ退出提示框来看一下常见的几种自定义提示框的实现方式。 这里使用的几种弹出框实现方法概括为以下几种: 自定义Dialog 自定义PopupWindow 自定义Layout ...
Android中原生的Dialog弹窗提醒控件样式单一,有时候并不能满足我们的项目需求,而且一个工程里面有时候会在多处都用到弹窗提醒的功能,代码会出现大量的冗余,工作之余,就自己实现了这么一个弹窗提醒控件。...
Android 程序技术 本节课程内容:自动完成文本框 高级控件 Advanced controls 高级 控件 知识 要求 自动完成文本框 ...为弹出的下拉菜单指定提示标题 android:completionThreshold 指定用户至少输入几个字符