常用的android弹出对话框

来源:互联网 发布:神仙道 源码 编辑:程序博客网 时间:2024/06/01 10:31


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

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

[java] view plaincopyprint?
  1.   


[java] view plaincopyprint?
  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.png 


上面的代码中我们新建了一个AlertDialog,并用Builder方法形成了一个对象链,通过一系列的设置方法,构造出我们需要的对话框,然后调用show方法显示出来,注意到Builder方法的参数 self,这个其实是Activity对象的引用,根据你所处的上下文来传入相应的引用就可以了。例如在onCreate方法中调用,只需传入this即可。


下面是带确认和取消按钮的对话框

  1. [java] view plaincopyprint?
    1. new AlertDialog.Builder(self)   
    2. .setTitle("确认")  
    3. .setMessage("确定吗?")  
    4. .setPositiveButton("是"null)  
    5. .setNegativeButton("否"null)  
    6. .show();  
     
复制代码


2.png 

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

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

  1. [java] view plaincopyprint?
    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();  
     



3.png 

如上代码,我们用setView方法,为我们的对话框传入了一个文本编辑框,当然,你可以传入任何的视图对象,比如图片框,WebView等。。尽情发挥你的想象力吧~:lol

下面是单选框与多选框,也是非常有用的两种对话框

  1. [java] view plaincopyprint?
    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.                               
    7.      public void onClick(DialogInterface dialog, int which) {  
    8.         dialog.dismiss();  
    9.      }  
    10.   }  
    11. )  
    12. .setNegativeButton("取消"null)  
    13. .show();  
     
  2.                


4.png 


  1. [java] view plaincopyprint?
    1.                  
    2. new AlertDialog.Builder(self)  
    3. .setTitle("多选框")  
    4. .setMultiChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, nullnull)  
    5. .setPositiveButton("确定"null)                  
    6. .setNegativeButton("取消"null)  
    7. .show();  
                   



多选对话框 

单选和多选对话框应该是我们平时用的非常多的,代码应该很好理解,下面再最后介绍两个、

列表对话框

  1. [java] view plaincopyprint?
    1. new AlertDialog.Builder(self)  
    2. .setTitle("列表框")  
    3. .setItems(new String[] {"列表项1","列表项2","列表项3"}, null)  
    4. .setNegativeButton("确定"null)  
    5. .show();  
     



6.png 


最后,在对话框中显示图片

  1. [java] view plaincopyprint?
    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();  
     


7.png 

      我们传入了一个ImageView来显示图片,这里显示了一个经典的android小绿人图标~ ~,当然这里还可以放上网络图片,具体的实现方法就不介绍了,留给大家来练习吧~:lol

      最后总结一下,android平台为我们开发提供了极大的便利,DialogBuilder能做的不止这些,这里给大家展示的只是冰山一角,我们可以尽情的发挥想象,创造我们自己的对话框。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果6p开不了机怎么办 苹果6p黑屏了怎么办 肚子胀反胃想吐怎么办 脸上干皮特别多怎么办 月光足还不了款怎么办 孩子不爱和小朋友玩怎么办 不知道怀孕抽烟了怎么办 校园欺凌来了该怎么办 拉的屎是绿色的怎么办 生完孩子痔疮痛怎么办 生过孩子脱肛该怎么办 生完宝宝有痔疮怎么办 毎次大便都脱肛怎么办 怀孕快生了便秘怎么办 35周孕晚期便秘怎么办 怀孕了老公出轨了怎么办 婆婆跟老公睡了怎么办 婆婆和老公互黏怎么办 15岁就掉头发怎么办 24岁经常掉头发怎么办 舍友打游戏太吵怎么办 家里的地砖想换怎么办 墙上的瓷砖掉了怎么办 瓷砖掉了一块瓷怎么办 白色裙子太透了怎么办 剑三石头插错了怎么办 四六级证书丢了怎么办 当月发票冲红了怎么办 当月发票红冲了怎么办 作废的发票扔了怎么办 发票公章盖错了怎么办 发票章盖的模糊怎么办 下的电影没字幕怎么办 荣耀8下载东西慢怎么办 考科目二下大雨怎么办 不求上进的人怎么办 连锁经营投的钱怎么办 古曼丽不想养了怎么办 百度云上传太慢怎么办 手机视频拍倒了怎么办 老师收手机不给怎么办