一、什么是Dialog对话框

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

二、几种常见的对话框

  1、确认对话框。

  2、单选按钮对话框。

  3、多选按钮对话框。

  4、列表对话框。

  5、自定义对话框。

三、Dialog的常用方法

  1、 AlertDialog.Builder中的create()方法,创建一个dialog。

  2、setTitle(),设置标题

  3、setIcon():为对话框设置图标。

  4、setMessage():为对话框设置内容。

  5、setView():为对话框设置自定义样式。

  6、setItems():设置对话框要显示一个list。

  7、setSingleChoiceItems():显示单选按钮列表

  8、setMultiChoiceItems():显示复选按钮列表

  9、setNeutralButton():普通按钮

  10、setPositiveButton():给对话框添加确认按钮。

  11、setNegativeButton():给对话框添加取消按钮。

  

四、示例代码,确认对话框、单选对话框,多选对话框,列表对话框,自定义对话框五种对话框。

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="对话框代码示例" /> <Button
android:id="@+id/btn_dialog1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="确认对话框"/> <Button
android:id="@+id/btn_dialog2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="单选按钮对话框"/> <Button
android:id="@+id/btn_dialog3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="多选按钮对话框"/> <Button
android:id="@+id/btn_dialog4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="列表对话框"/> <Button
android:id="@+id/btn_dialog5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="自定义对话框"/> </LinearLayout>

dialog_layout.xml 自定义对话框布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <EditText
android:layout_width="200dp"
android:layout_height="wrap_content" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定" />
</LinearLayout>

后台代码,mai.java

package com.example.zhengcheng.myapplication;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends Activity { Button btn_dialog1;
Button btn_dialog2;
Button btn_dialog3;
Button btn_dialog4;
Button btn_dialog5; String[] item_list1 = new String[]{"男", "女"}; //单选列表数据
String[] item_list2 = new String[]{"篮球", "乒乓球", "羽毛球", "足球", "游泳"}; //多选列表数据
boolean[] selected = new boolean[]{false, false, false, false, false}; //多选列表选中状态
String[] item_list3 = new String[]{"项目部", "设计部", "测试部", "人事部"}; //列表框数据 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //确认对话框
btn_dialog1 = (Button) findViewById(R.id.btn_dialog1);
btn_dialog1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//创建一个builder对象,用来设置对话框属性
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("对话框标题"); //设置对话框标题
builder.setIcon(R.mipmap.ic_launcher); //设置对话框图标
builder.setMessage("是否退出"); //设置对话框内容
//设置对话框确定按钮
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "点击了确认按钮", Toast.LENGTH_SHORT).show();
}
}); //设置对话框取消按钮
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "点击了取消按钮", Toast.LENGTH_SHORT).show();
}
});
//创建对话框对象
AlertDialog dialog = builder.create();
dialog.show(); //显示对话框
}
}); //单选按钮对话框
btn_dialog2 = (Button) findViewById(R.id.btn_dialog2);
btn_dialog2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//创建一个builder对象,用来设置对话框属性
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("选择性别"); //设置对话框标题
builder.setIcon(R.mipmap.ic_launcher); //设置对话框图标
builder.setSingleChoiceItems(item_list1, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String sex = item_list1[which];
Toast.makeText(MainActivity.this, sex, Toast.LENGTH_SHORT).show();
dialog.dismiss(); //关闭对话框
}
}); //创建对话框对象
AlertDialog dialog = builder.create();
dialog.show(); //显示对话框
}
}); //复选按钮对话框
btn_dialog3 = (Button) findViewById(R.id.btn_dialog3);
btn_dialog3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//创建一个builder对象,用来设置对话框属性
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("选择爱好"); //设置对话框标题
builder.setIcon(R.mipmap.ic_launcher); //设置对话框图标 //设置多选按钮对话框,第一个参数为列表数据,第二各参数为上次选中的数据,为boolean类型数组
builder.setMultiChoiceItems(item_list2, selected, new DialogInterface.OnMultiChoiceClickListener() {
//点击复选框按钮
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
//创建数组,记录选中状态
selected[which] = isChecked;
}
}
}); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String choice = "";
for (int i = 0; i < selected.length; i++) {
if (selected[i]) { //根据选中状态获取数组中的值
choice += item_list2[i];
}
} Toast.makeText(MainActivity.this, choice.toString(), Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
}); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}); //创建对话框对象
AlertDialog dialog = builder.create();
dialog.show(); //显示对话框
}
}); //列表对话框
btn_dialog4 = (Button) findViewById(R.id.btn_dialog4);
btn_dialog4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//创建一个builder对象,用来设置对话框属性
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("选择部门"); //设置对话框标题
builder.setIcon(R.mipmap.ic_launcher); //设置对话框图标
builder.setSingleChoiceItems(item_list3, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String department = item_list3[which];
Toast.makeText(MainActivity.this, department, Toast.LENGTH_SHORT).show();
dialog.dismiss(); //关闭对话框
}
}); //创建对话框对象
AlertDialog dialog = builder.create();
dialog.show(); //显示对话框
}
}); //自定义对话框
btn_dialog5 = (Button) findViewById(R.id.btn_dialog5);
btn_dialog5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获取Layout布局
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
View view = inflater.inflate(R.layout.dialog_layout,null); //创建一个builder对象,用来设置对话框属性
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("选择部门"); //设置对话框标题
builder.setIcon(R.mipmap.ic_launcher); //设置对话框图标
//设置builder的视图为自定义视图
builder.setView(view); //创建对话框对象
AlertDialog dialog = builder.create();
dialog.show(); //显示对话框
}
});
}
}

最新文章

  1. javascipt的【函数表达式】
  2. Android音视频之MediaRecorder音视频录制
  3. MMU内存管理单元相关知识点总结
  4. 关于jq+devexpress基础知识总结(随便的基础)
  5. Java-数组练习1
  6. 安卓手机已保存WiFi密码查看助手(开源)
  7. mac 10.9.4下配置apache
  8. 解决IE中window.open打开链接refer丢失的问题
  9. c#之线程池优先级
  10. Android里的多线程知识点
  11. [Doc ID 1666646.1]如何使用功能管理员清除缓存?
  12. python学习--string
  13. 约瑟夫问题(Josephus Problem)的两种快速递归算法
  14. QF——iOS中数据持久化的几种方式
  15. 十一:Java之GUI图形Awt和Swing
  16. linux操作系统基础篇(五)
  17. Linux命令学习备忘
  18. NYOJ127 星际之门(一)(最小生成数的个数+高速幂)
  19. SpringCloud 学习网址记录
  20. Altium Designer (17.0) 打印输出指定的层

热门文章

  1. java 竖线分割字符串的问题
  2. Python 二进制,十进制,十六进制转换
  3. BZOJ 2199: [Usaco2011 Jan]奶牛议会
  4. jsp的九大内置对象及EL表达式的隐含对象
  5. 小Z爱图论(NOIP信(sang)心(bin)赛)From FallDream
  6. Java中UML图
  7. 双缓冲(Double Buffer)原理和使用【转】
  8. Linux操作系统的权限代码分析【转】
  9. vboxmanage查询正在运行的vbox虚拟机
  10. 【linux高级程序设计】(第十五章)UDP网络编程应用 2