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

1、简单的对话框

public void showDialog(){
Dialog dialog = new AlertDialog.Builder(this)
.setTitle("标题")
.setMessage("消息")
.setPositiveButton("好", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { }
})
.setNegativeButton("不好", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { }
}).create();
dialog.show();
}

2、带编辑框的对话框

public void showDialog(){
EditText et = new EditText(this);// 单独出来,方便取用户输入的数据。
Dialog dialog = new AlertDialog.Builder(this)
.setTitle("请输入")
.setIcon(android.R.drawable.ic_dialog_info)
.setView(et)
.setPositiveButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) { } })
.setNegativeButton("取消", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) { }})
.create();
dialog.show();
}

3、含单选钮的对话框

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

4、含多选框的对话框

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

5、含列表的对话框

public void showDialog(){
final String[] str = new String[]{"第一部","第二部","第二部","第三部","第四部","第五部","第六部"} ;
// 单独列出来方便之后取数据
Dialog dialog = new AlertDialog.Builder(this)
.setTitle("列表框,供选择")
.setItems(str, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.e("DIYDialogActivity", "showDialog---------------------you select " + which);
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { }
})
.create();
dialog.show();
}

6、自定义的对话框

public void showDialog(){
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.dialog_showmsg, (ViewGroup) findViewById(R.id.view_dialog));
// 可指定对话框的背景色彩那些 Dialog dialog = new AlertDialog.Builder(this)
.setView(layout)
.create(); // 设置对话框的出现位置,借助于window对象
Window win = dialog.getWindow();
//win.setGravity(Gravity.CENTER);
//win.setGravity(Gravity.BOTTOM);
//win.setGravity(Gravity.TOP);
win.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);// 弹出对话框时,底部窗体,不变暗。 WindowManager.LayoutParams lp = win.getAttributes();
lp.x = -200;// x=0,y=0时,显示位置是屏幕中心。
lp.y = 0 ;
lp.alpha = 0.6f;// 对话框的透明度
win.setAttributes(lp); Button but = (Button) layout.findViewById(R.id.but_positive);
but.requestFocus();
dialog.show();
}

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. linux 控制台使用技巧

    1. 键盘无响应 可能是按下ctrl+s, 此时按下scroll即可解锁 2. 想看上一屏的信息 shift+pageup 3. 打印的信息和错误信息区分 普通信息, 用printf, cout打印的 ...

  2. UVA 10201 Adventures in Moving - Part IV(dp)

    Problem A: Adventures in Moving - Part IV To help you move from Waterloo to the big city, you are co ...

  3. 第四天学习内容 if switch for 的练习

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  4. 网页插入QQ 无需加好友

    <p>联系方式:1073351325<a href="tencent://message/?Menu=yes&uin=1073351325&Site=dsf ...

  5. .net生成Excel,并下载

    生成Excel的方式有很多种,这里记录两个最简单的: 1.将数据保存为html,然后输出到客户端,保存为Excel文件: 2.通过\t\n生成字符串,然后输出到客户端,保存为Excel. 以上两者的原 ...

  6. 【ASP.NET Web API教程】3 Web API客户端

    原文:[ASP.NET Web API教程]3 Web API客户端 Chapter 3: Web API Clients 第3章 Web API客户端 本文引自:http://www.asp.net ...

  7. Google Ads Encryption Key

    aes | floyd's Google Ads Encryption Key

  8. 别动我的奶酪:CSV文件数据丢零现象及对策

    CSV文件在读入EXCEL时,对于前面有零的数据项,比如电话号码,会自作聪明地丢掉那个零. 比如,我有一个北京客户,其号码为01059178888,如果这是通过CSV文件来的数据,在EXCEL中打开时 ...

  9. SQL基础检测

    1.SQL 指的是? Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? SELECT 3.哪条 SQL 语句用于更新数据库中的数据? UPDATE 4 ...

  10. Delphi的TService的輸入桌面切換(服务程序)(windows登录界面如何截图)(使用了OpenDesktop和GetThreadDesktop等API)

    dfm: object CopyDeskService: TCopyDeskService  OldCreateOrder = False  OnCreate = ServiceCreate  OnD ...