我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框。当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢? 
    幸运的是,android提供了这种问题的解决方案,刚开始接触android的时候,我在做一个自定义对话框的时候,也是通过继承的方式来实现,后来随着对文档了解的深入,发现了android起始已经提供了相应的接口Dialog Builder ,下面我就吧相关的内容在这里分享一下,也能让更多的初学者少走弯路。

首先是一个最简单的应用,就是弹出一个消息框,在android中可以这样实现

  1. 1
  2. new  AlertDialog.Builder(self)
  3. 2
  4. .setTitle("标题" )
  5. 3
  6. .setMessage("简单消息框" )
  7. 4
  8. .setPositiveButton("确定" ,  null )
  9. 5
  10. .show();
    1. new  AlertDialog.Builder(self)
    2. .setTitle("确认" )
    3. .setMessage("确定吗?" )
    4. .setPositiveButton("是" ,  null )
    5. .setNegativeButton("否" , null)
    6. .show();

注意到,这里有两个null参数,这里要放的其实是这两个按钮点击的监听程序,由于我们这里不需要监听这些动作,所以传入null值简单忽略掉,但是实际开发的时候一般都是需要传入监听器的,用来响应用户的操作。

下面是一个可以输入文本的对话框

    1. new  AlertDialog.Builder(self)
    2. .setTitle("请输入" )
    3. .setIcon(android.R.drawable.ic_dialog_info)
    4. .setView(new  EditText(self))
    5. .setPositiveButton("确定" , null)
    6. .setNegativeButton("取消" ,  null )
    7. .show();
    1. new  AlertDialog.Builder(self)
    2. .setTitle("请选择" )
    3. .setIcon(android.R.drawable.ic_dialog_info)
    4. .setSingleChoiceItems(new  String[] {"选项1", "选项2", "选项3" , "选项4" },  0 ,
    5. new  DialogInterface.OnClickListener() {
    6. public   void  onClick(DialogInterface dialog,  int  which) {
    7. dialog.dismiss();
    8. }
    9. }
    10. )
    11. .setNegativeButton("取消" ,  null )
    12. .show();


    1. new  AlertDialog.Builder(self)
    2. .setTitle("多选框" )
    3. .setMultiChoiceItems(new  String[] {"选项1", "选项2", "选项3" , "选项4" },  null , null )
    4. .setPositiveButton("确定" , null)
    5. .setNegativeButton("取消" ,  null )
    6. .show();
    1. new  AlertDialog.Builder(self)
    2. .setTitle("列表框" )
    3. .setItems(new  String[] {"列表项1", "列表项2", "列表项3" },  null )
    4. .setNegativeButton("确定" ,  null )
    5. .show();
    1. ImageView img =  new ImageView(self);
    2. img.setImageResource(R.drawable.icon);
    3. new  AlertDialog.Builder(self)
    4. .setTitle("图片框" )
    5. .setView(img)
    6. .setPositiveButton("确定" ,  null )
    7. .show();

android常用的弹出提示框的更多相关文章

  1. android标题栏上面弹出提示框(二) PopupWindow实现,带动画效果

    需求:上次用TextView写了一个从标题栏下面弹出的提示框.android标题栏下面弹出提示框(一) TextView实现,带动画效果,  总在找事情做的产品经理又提出了奇葩的需求.之前在通知栏显示 ...

  2. android标题栏下面弹出提示框(一) TextView实现,带动画效果

    产品经理用的是ios手机,于是android就走上了模仿的道路.做这个东西也走了一些弯路,写一篇博客放在这里,以后自己也可用参考,也方便别人学习. 弯路: 1.刚开始本来用PopupWindow去实现 ...

  3. android中常用的弹出提示框

    转自:http://blog.csdn.net/centralperk/article/details/7493731 我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的 ...

  4. odoo13之右上角弹出提示框

    前言 在odoo中已经提供好了右上角弹出提示框的接口,我们只需要调用即可: 而提示框的实现又分为前端js实现和后段函数实现,前后端实现的效果相同. 实现效果图 前端实现提示框 在前端中显示提示框最常用 ...

  5. PHP弹出提示框并跳转到新页面即重定向到新页面

    本文为大家介绍下使用PHP弹出提示框并跳转到新页面,也就是大家所认为的重定向,下面的示例大家可以参考下   这两天写一个demo,需要用到提示并跳转,主要页面要求不高,觉得没必要使用AJAX,JS等, ...

  6. [转] 在Asp.net前台和后台弹出提示框

    一.在前台弹出提示框 1.点击"A"标记或者"控件按钮"弹出提示框 <asp:LinkButton ID="lbtnDel" runa ...

  7. SilverLight 页面后台方法XX.xaml.cs 创建JS,调用JS ,弹出提示框

    1.Invoke和InvokeSelf [c-sharp] view plaincopy public partial class CreateJSDemo : UserControl { publi ...

  8. 基于Jquery 简单实用的弹出提示框

    基于Jquery 简单实用的弹出提示框 引言: 原生的 alert 样子看起来很粗暴,网上也有一大堆相关的插件,但是基本上都是大而全,仅仅几句话可以实现的东西,可能要引入好几十k的文件,所以话了点时间 ...

  9. iOS bug 之 H5 页面没有弹出提示框

    描述:在安卓上有提示框,但是在iOS上没有提示框. step 1: 失误,是我没有在正确的位置设置网址. step 2: 修改之后,测试页能弹出提示框,但是正式的页面没有提示框. step 3: 我输 ...

随机推荐

  1. linux内核宏container_of

    首先来个简单版本 /* given a pointer @ptr to the field @member embedded into type (usually * struct) @type, r ...

  2. [转]Ionic 实现双击返回键退出功能

    本文转自:http://ionichina.com/topic/5514b539b6421f9166aa5f88 一.准备 Toast插件 插件地址:cordova plugin add https: ...

  3. Ubuntu 安装libusb

    执行以下指令 sudo apt-get install libusb-dev sudo apt-get install libusb-1.0-0-dev

  4. python之2048

    #-*- coding:utf-8 -*- import curses from random import randrange, choice # generate and place new ti ...

  5. codeforces 711B B. Chris and Magic Square(水题)

    题目链接: B. Chris and Magic Square 题意: 问在那个空位子填哪个数可以使行列对角线的和相等,就先找一行或者一列算出那个数,再验证是否可行就好; AC代码: #include ...

  6. WebService wsdl没有types的问题

    刚学WebService就遇到一个问题,按视屏敲的代码,它生成的wsdl页面与自己的不一样,我的没有types,结构完全不同了 This XML file does not appear to hav ...

  7. 转:Metronic – 超赞!基于 Bootstrap 的响应式后台管理模板

    http://www.cnblogs.com/lhb25/p/metronic-responsive-admin-dashboard-template.html

  8. 转: java学习路线图

    http://www.java1234.com/javaxuexiluxiantu.html

  9. C#综合揭秘——细说多线程(下)

    引言 本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发.其中委托的BeginInvoke方法以及回调函数最为常用.而 I/O线程可能 ...

  10. SEO在网页制作中的应用

    1.什么是SEOSEO(Search Engine Optimization)中文意译为“搜索引擎优化”.SEO是指通过网站内部调整优化及站外优化,使网站满足搜索引擎收录排名需求,在搜索引擎中提高关键 ...