在android的编程中,对话框的用处是非常多的,然而,有时对对话框的需求也是不一样的,那么现在,就总结对话框的种类,以及事件的处理形势。

1、简单的对话框

  1. public void showDialog(){
  2. Dialog dialog = new AlertDialog.Builder(this)
  3. .setTitle("标题")
  4. .setMessage("消息")
  5. .setPositiveButton("好", new DialogInterface.OnClickListener() {
  6. @Override
  7. public void onClick(DialogInterface dialog, int which) {
  8.  
  9. }
  10. })
  11. .setNegativeButton("不好", new DialogInterface.OnClickListener() {
  12. @Override
  13. public void onClick(DialogInterface dialog, int which) {
  14.  
  15. }
  16. }).create();
  17. dialog.show();
  18. }

2、带编辑框的对话框

  1. public void showDialog(){
  2. EditText et = new EditText(this);// 单独出来,方便取用户输入的数据。
  3. Dialog dialog = new AlertDialog.Builder(this)
  4. .setTitle("请输入")
  5. .setIcon(android.R.drawable.ic_dialog_info)
  6. .setView(et)
  7. .setPositiveButton("确定", new DialogInterface.OnClickListener(){
  8. @Override
  9. public void onClick(DialogInterface dialog, int which) {
  10.  
  11. }
  12.  
  13. })
  14. .setNegativeButton("取消", new DialogInterface.OnClickListener(){
  15. @Override
  16. public void onClick(DialogInterface dialog, int which) {
  17.  
  18. }})
  19. .create();
  20. dialog.show();
  21. }

3、含单选钮的对话框

  1. public void showDialog(){
  2. final String[] str = new String[]{"第一部","第二部","第二部","第三部","第四部","第五部","第六部"} ;
  3. // 单独列出来方便之后取数据
  4. Dialog dialog = new AlertDialog.Builder(this)
  5. .setTitle("单选框,请选择")
  6. .setSingleChoiceItems(str, 3, new DialogInterface.OnClickListener() {
  7. // 3 代表默认选中str的index=3的那个单选框
  8. @Override
  9. public void onClick(DialogInterface dialog, int which) {
  10. Log.e("DIYDialogActivity", "showDialog->you select " + str[which] ) ;
  11. }
  12. })
  13. .setPositiveButton("确定", new DialogInterface.OnClickListener() {
  14. @Override
  15. public void onClick(DialogInterface dialog, int which) {
  16.  
  17. }
  18. })
  19. .create();
  20. dialog.show();
  21. }

4、含多选框的对话框

  1. public void showDialog(){
  2. final String[] str = new String[]{"第一部","第二部","第二部","第三部","第四部","第五部","第六部"} ;// 单独列出来方便之后取数据
  3. boolean[] bstr = new boolean[]{true,false,false,false,false,false,false};
  4. Dialog dialog = new AlertDialog.Builder(this)
  5. .setTitle("多选框,请选择")
  6. .setMultiChoiceItems(str, bstr, new DialogInterface.OnMultiChoiceClickListener() {
  7. @Override
  8. public void onClick(DialogInterface dialog, int which, boolean isChecked) {
  9. Log.e("DIYDialogActivity", "showDialog->" +
  10. "you select " + str[which]+ "vaule = " +new Boolean(isChecked).toString() ) ;
  11. }
  12. })
  13. .setPositiveButton("确定", new DialogInterface.OnClickListener(){
  14. @Override
  15. public void onClick(DialogInterface dialog, int which) {
  16.  
  17. }
  18. }).create();
  19. dialog.show();
  20. }

5、含列表的对话框

  1. public void showDialog(){
  2. final String[] str = new String[]{"第一部","第二部","第二部","第三部","第四部","第五部","第六部"} ;
  3. // 单独列出来方便之后取数据
  4. Dialog dialog = new AlertDialog.Builder(this)
  5. .setTitle("列表框,供选择")
  6. .setItems(str, new DialogInterface.OnClickListener() {
  7. @Override
  8. public void onClick(DialogInterface dialog, int which) {
  9. Log.e("DIYDialogActivity", "showDialog---------------------you select " + which);
  10. }
  11. })
  12. .setPositiveButton("确定", new DialogInterface.OnClickListener() {
  13. @Override
  14. public void onClick(DialogInterface dialog, int which) {
  15.  
  16. }
  17. })
  18. .create();
  19. dialog.show();
  20. }

6、自定义的对话框

  1. public void showDialog(){
  2. LayoutInflater inflater = getLayoutInflater();
  3. View layout = inflater.inflate(R.layout.dialog_showmsg, (ViewGroup) findViewById(R.id.view_dialog));
  4. // 可指定对话框的背景色彩那些
  5.  
  6. Dialog dialog = new AlertDialog.Builder(this)
  7. .setView(layout)
  8. .create();
  9.  
  10. // 设置对话框的出现位置,借助于window对象
  11. Window win = dialog.getWindow();
  12. //win.setGravity(Gravity.CENTER);
  13. //win.setGravity(Gravity.BOTTOM);
  14. //win.setGravity(Gravity.TOP);
  15. win.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);// 弹出对话框时,底部窗体,不变暗。
  16.  
  17. WindowManager.LayoutParams lp = win.getAttributes();
  18. lp.x = -200;// x=0,y=0时,显示位置是屏幕中心。
  19. lp.y = 0 ;
  20. lp.alpha = 0.6f;// 对话框的透明度
  21. win.setAttributes(lp);
  22.  
  23. Button but = (Button) layout.findViewById(R.id.but_positive);
  24. but.requestFocus();
  25. dialog.show();
  26. }

Android学习-各种对话框的更多相关文章

  1. android学习笔记 对话框合集

    package com.zhangbz.dialog; import android.app.Activity; import android.app.AlertDialog; import andr ...

  2. android学习九 对话框碎片

    1.android的对话框是异步的,对话框创建后马上执行下面的代码.好处:      a.通过实现对话框的回调方法反馈用户与对话框的交互.    b.能够在代码中清楚对话框.     2.碎片对话框基 ...

  3. 9.Android之日期对话框DatePicker控件学习

    设置日期对话框在手机经常用到,今天来学习下. 首先设置好布局文件:如图 xml对应代码 <?xml version="1.0" encoding="utf-8&qu ...

  4. 【转】Pro Android学习笔记(四六):Dialog(3):对话框弹对话框

    目录(?)[-] 帮助提示框的实现 实现再弹框 再谈fragment管理器 提示框的按钮Help,将触发弹出新的帮助提示框. 帮助提示框的实现 帮助提示框的实现很简单,利用重写onCreateView ...

  5. android 学习随笔十九(对话框、样式、主题、国际化 )

    1.对话框 package com.itheima.dialog; import android.os.Bundle; import android.app.Activity; import andr ...

  6. android学习笔记16——对话框

    android支持丰富的对话框,常用4中对话框: 1.AlertDialog: 2.ProgressDialog:进度对话框,这个对话框只是对进度条的封装 3.DatePickerDialog:日期选 ...

  7. Android学习:AlertDialog对话框

    AlertDialog可以生成各种内容的对话框,它生成的对话框包含4个区域:图标区,标题区,内容区,按钮区 <?xml version="1.0" encoding=&quo ...

  8. Android学习(十九)Dialog对话框

    一.什么是Dialog对话框 对话框是当前页面中弹出的一个小窗口,用于显示重要的提示信息,提示用户输入信息,确认信息,或者显示某种状态,如下载进度,退出提示等等.用户需要与对话框进行交互,才能回到原窗 ...

  9. Android学习路线总结,绝对干货

    title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...

随机推荐

  1. 点击得到QTableWidget中任意位置QPushButton的行列信息

    http://www.qtcn.org/bbs/read-htm-tid-51835.html http://www.qtcn.org/bbs/simple/?t43841.html 比如(点击每行最 ...

  2. sum(case when then)(男女生的个数)

    判断类似一个班级的男生和女生的人数,用sum (cese when then ) select count(er.execute_result), sum(case er.execute_result ...

  3. 基于visual Studio2013解决C语言竞赛题之1067间隔排序

        题目 解决代码及点评 /* 功能:间隔元素排序.用随机函数产生25个[25,75]之间的整数, 把它送到一维数组M中. 要求对M[I],M[I+J],M[I+2*J],-这些元 ...

  4. unix domain IPC 进程间通信简析

    Linux系统有多种进程间通信方式,如信号.消息队列.管道等,socket是其中一种,socket使用unix domain 模式进行进程间通信 //服务端代码 #include <stdio. ...

  5. 基于Hadoop2.0、YARN技术的大数据高阶应用实战(Hadoop2.0\YARN\Ma

    Hadoop的前景 随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握H ...

  6. 制作openstack用的centos6.5镜像

    目的: 在centos6.5操作系统环境下制作一个centos6.5的kvm镜像,安装cloud-init,能自己主动扩展根分区 一.制作环境: 操作环境是在openstack平台开一个实例.装的是c ...

  7. MMA7455加速度传感器測量角度

    使用加速度传感器应该注意几点: 第一:确保你的IIC是正确的: 第二,首先必须校准系统,校准方法,例如以下:将7455平放,保证z轴向下,这是假设系统是Ok的,那么x轴输出为0,y轴输出为0,z轴输出 ...

  8. win32 字体变换与窗口同大同小

    #include <windows.h> #include "res/resource.h" LRESULT CALLBACK WinProc(HWND hwnd, U ...

  9. iOS UIScrollView 停止滑动 减速

    1.UIScrollView 减速 可能通过decelerationRate的属性来设置,它的值域是(0.0,1.0),当decelerationRate设置为0.1时,当手指touch up时就会很 ...

  10. uva 10196 Check The Check

    题目:10196 - Check The Check 思路:水题..模拟 这个代码,前半部分是在数统机房上课的时候写的,挫了点,懒得改了. #include <cstdio> #inclu ...