zoukankan      html  css  js  c++  java
  • Android学习(十九)Dialog对话框

    一、什么是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();  //显示对话框
                }
            });
        }
    }
  • 相关阅读:
    hdu 2489 dfs枚举组合情况+最小生成树
    hdu3938 Portal 离线的并查集
    hdu3926 Hand in Hand 判断同构
    hdu1811 Rank of Tetris 拓扑排序+并查集
    poj3083 Children of the Candy Corn 深搜+广搜
    HDU 2529 Shot (物理数学题)
    HDU 4576 Robot(概率dp)
    HDU 2672 god is a girl (字符串处理,找规律,简单)
    HDU 2669 Romantic(扩展欧几里德, 数学题)
    HDU 2671 Can't be easier(数学题,点关于直线对称)
  • 原文地址:https://www.cnblogs.com/zhengcheng/p/4423535.html
Copyright © 2011-2022 走看看