android 弹窗有边框_android中常用的弹出提示框

news/2024/11/30 20:30:07/

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框。当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢?

幸运的是,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等。。尽情发挥你的想象力吧~: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能做的不止这些,这里给大家展示的只是冰山一角,我们可以尽情的发挥想象,创造我们自己的对话框。http://blog.csdn.net/centralperk/article/category/910289


http://www.ppmy.cn/news/761174.html

相关文章

Web前端大作业——基于HTML+CSS+JavaScript仿英雄联盟LOL游戏网站

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

android 弹窗有边框_常用的android弹出对话框

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继…

微信开发之小程序分享设置图片标题

在js文件中写入一下代码 /*** 设置分享的名称和logo*/onShareAppMessage() {return {title: WebJob,imageUrl: https://ossweb-img.qq.com/images/lol/web201310/skin/big84000.jpg,path: /pages/index/index}}, 页面中有可以触发转发事件的地方有两个: 一个是右上…

lol进入服务器后显示3秒白屏,LOL:盘点新客户端出现的BUG,及可行的解决方法...

原标题:LOL:盘点新客户端出现的BUG,及可行的解决方法 自从LOL客户端强制改版后,引发无数人的吐槽。虽然相对新客户端来说,玩家熟悉度更高,BUG基本上也没有。但是老客户端不也是慢慢的更新换代而来的吗&…

html 一行显示边框线,HTML 网页中要显示出来一个虚线的边框 就是一行字在边框里面,那个边框是显示出来的,程式码应该怎么写?...

HTML 网页中要显示出来一个虚线的边框 就是一行字在边框里面,那个边框是显示出来的,程式码应该怎么写?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! HTML 网页中要显示出来一个虚线的边框 就是一行字在边框…

vuex缓存接口返回的数据,只在首次使用调用接口,之后使用vuex中的缓存值

场景:同一个接口在多个页面调用 问题:重复访问,导致对服务器的重复请求,降低用户体验。 解决:使用vuex的异步处理,第一次访问时将数据缓存,下次访问直接从缓冲中获取,提高访问速度 注…

基于matlab使用两个图像估计校准相机的姿势(附源码)

一、前言 运动结构 (SfM) 是从一组 3-D 图像估计场景的 2-D 结构的过程。此示例演示如何从两个图像估计校准相机的姿势,将场景的三维结构重建为未知比例因子,然后通过检测已知大小的对象来恢复实际比例因子。 此示例演示如何从使…

Web服务器群集:四层代理与七层代理

目录 一、理论 1.OSI七层模型 2.四层代理 3.七层代理 4.四层代理与七层代理区别 5.负载均衡器 6.常见的代理组件 7.应用场景 二、总结 一、理论 1.OSI七层模型 (1)概念 标准的七层网络分层是OSI七层模型,TCP/IP五层模型和TCP/IP四…