设为首页 加入收藏

TOP

一起学Android之Dialog(一)
2019-09-01 23:13:28 】 浏览:65
Tags:一起 Android Dialog

概述

对话框(Dialog)是一个小窗口,在Android系统开发中经常会用到,它提示用户做决定或者输入一些东西,对话框并不填充屏幕,是一个模态(Modal)窗口。Dialog类是所有对话框的基类,应避免直接实例化对话框,通常使用它的子类(AlertDialog,DatePickerDialog or TimePickerDialog),本文主要讲解的是AlertDialog。

什么是AlertDialog?

可以显示标题、最多三个按钮、可供选择的项目列表或自定义布局的对话框。

创建步骤

  1. 构建一个Builder(AlertDialog.Builder)。
  2. 设置对话框标题(setTitle),内容信息(setMessage)。
  3. 设置对话框显示的按钮,最多三个按钮(setPositiveButton,setNegativeButton)。
  4. 调用方法,创建对话框对象(create)。
  5. 显示对话框(show)。

涉及知识点

  • AlertDialog.Builder 对话框构造器,可以进行对话框进行设置,并创建对话框对象。
  • setTitle 设置对话框标题,setMessage设置对话框显示的文本内容
  • setNegativeButton 设置对话框显示的否定按钮(Cancel), setPositiveButton设置对话框显示的肯定按钮(OK)
  • show() 显示对话框
  • setItems 设置对话框的列表内容
  • setSingleChoiceItems 设置单选按钮的列表项,setMultiChoiceItems设置多选按钮的列表项
  • setView 设置自定义视图的对话框

默认对话框

如下图所示(显示了标题,内容,两个按钮):

关键代码如下:

 1     /**
 2      * 默认对话框事件响应方法
 3      *
 4      * @param v
 5      */
 6     public void showDefaultDialog(View v) {
 7         //创建一个Builder
 8         AlertDialog.Builder builder = new AlertDialog.Builder(this);
 9         //设置对话框标题
10         builder.setTitle("提示");
11         //设置对话框内容
12         builder.setMessage("这是一个对话框的提示");
13         //积极按钮?
14         builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
15             @Override
16             public void onClick(DialogInterface dialog, int which) {
17                 Toast.makeText(MainActivity.this, "你选择了OK", Toast.LENGTH_SHORT).show();
18             }
19         });
20         //消极按钮
21         builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
22             @Override
23             public void onClick(DialogInterface dialog, int which) {
24                 Toast.makeText(MainActivity.this, "你选择了Cancel", Toast.LENGTH_SHORT).show();
25             }
26         });
27         //创建一个对话框
28         AlertDialog dialog = builder.create();
29         //显示一个对话框
30         dialog.show();
31     }

列表对话框

如下图所示(弹出的对话框内容展示为一个列表)用户通过列表进行选择

关键代码如下:

 1  /**
 2      * 列表对话框响应事件
 3      *
 4      * @param v
 5      */
 6     public void showListDialog(View v) {
 7         //构件一个对话框Builder
 8         AlertDialog.Builder builder = new AlertDialog.Builder(this);
 9         //设置标题
10         builder.setTitle(R.string.pick_color);
11         //将资源文件转化为数组对象
12         arr_colors = getResources().getStringArray(R.array.arr_colors);
13         //设置列表内容和点击事件
14         builder.setItems(R.array.arr_colors, new DialogInterface.OnClickListener() {
15             @Override
16             public void onClick(DialogInterface dialog, int which) {
17                 Toast.makeText(MainActivity.this, "你选择了[" + arr_colors[which] + "]", Toast.LENGTH_SHORT).show();
18             }
19         });
20         //创建一个对话框
21         AlertDialog dialog = builder.create();
22         //显示一个对话框
23         dialog.show();
24     }

单选按钮对话框

如下图所示(用户通过单选按钮进行选择):

关键代码如下:

 1    /**
 2      * 单选框对话框按钮事件
 3      *
 4      * @param v
 5      */
 6     public void showSingleDialog(View v) {
 7         //构件一个对话框Builder
 8         AlertDialog.Builder builder = new AlertDialog.Builder(this);
 9         //设置标题
10         builder.setTitle(R.string.pick_color);
11         //将资源文件转化为数组对象
12         arr_colors = getResources().getStringArray(R.array.arr_colors);
13         checkedItems=new int[arr_colors.length];
14         //设置列表内容和点击事件,第二个参数checkedItem表示默认选中项
15         builder.setSingleChoiceItems(R.array.arr_colors, 0, new DialogInterface.OnClickListener() {
16             @Override
17             public void onClick(DialogInterface dialog, int which) {
18                 for(int i=0;i<checkedItems.length;i++){
19                     if(i==which){
20                         checkedItems[i]=1;
21                     }else{
22                         checkedItems[i]=0;
23                     }
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇使用拷贝的方式(adb push) 绕过An.. 下一篇How to build ffmpeg with hardwa..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目