zoukankan      html  css  js  c++  java
  • 2.31AlertDialog(对话框)_Android

    TOC

    AlertDialog(对话框)_Android

    设置流程:

    1. 创建AlertDialog.Builder对象;
    2. 调用setIcon()设置图标,setTitle()或setCustomTitle()设置标题;
    3. 设置对话框的内容:setMessage()还有其他方法来指定显示的内容;
    4. 调用setPositive/Negative/NeutralButton()设置:确定,取消,中立按钮;
    5. 调用create()方法创建这个对象,再调用show()方法将对话框显示出来;

    java设计模式:建造者模式-Builder模式

    • 确定弹窗

    • 列表

    • 单选列表

    • 多选列表

    <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:padding="5dp"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <Button
            android:id="@+id/btn_dialog_one"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1.显示一个普通的Dialog" />
    
        <Button
            android:id="@+id/btn_dialog_two"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2.显示一个带普通列表的Dialog" />
    
        <Button
            android:id="@+id/btn_dialog_three"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="3.显示一个带单选列表的Dialog" />
    
        <Button
            android:id="@+id/btn_dialog_four"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="4.显示一个带复选框列表的Dialog" />
    
    </LinearLayout>
    

    AlertDialogActivity

    package com.ttit.helloworld;
    
    import android.app.AlertDialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    public class AlertDialogActivity extends AppCompatActivity implements View.OnClickListener {
    
        private Button btn_dialog_one;
        private Button btn_dialog_two;
        private Button btn_dialog_three;
        private Button btn_dialog_four;
    
        private Context mContext;
        private boolean[] checkItems;
    
        private AlertDialog alert = null;
        private AlertDialog.Builder builder = null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.alertdailog_layout);
            mContext = this;
            bindView();
        }
    
        private void bindView() {
            btn_dialog_one = (Button) findViewById(R.id.btn_dialog_one);
            btn_dialog_two = (Button) findViewById(R.id.btn_dialog_two);
            btn_dialog_three = (Button) findViewById(R.id.btn_dialog_three);
            btn_dialog_four = (Button) findViewById(R.id.btn_dialog_four);
            btn_dialog_one.setOnClickListener(this);
            btn_dialog_two.setOnClickListener(this);
            btn_dialog_three.setOnClickListener(this);
            btn_dialog_four.setOnClickListener(this);
        }
        //按钮点击事件
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                //普通对话框
                case R.id.btn_dialog_one:
                    alert = null;
                    builder = new AlertDialog.Builder(mContext);
                    alert = builder.setIcon(R.mipmap.ic_icon_fish)//图标
                            .setTitle("系统提示:")//标题
                            //设置内容消息
                            .setMessage("这是一个最普通的AlertDialog,
    带有三个按钮,分别是取消,中立和确定")
                            .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Toast.makeText(mContext, "你点击了取消按钮~", Toast.LENGTH_SHORT).show();
                                }
                            })
                            .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Toast.makeText(mContext, "你点击了确定按钮~", Toast.LENGTH_SHORT).show();
                                }
                            })
                            .setNeutralButton("中立", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Toast.makeText(mContext, "你点击了中立按钮~", Toast.LENGTH_SHORT).show();
                                }
                            }).create();             //创建AlertDialog对象
                    alert.show();                    //显示对话框
                    break;
                //普通列表对话框
                case R.id.btn_dialog_two:
                    final String[] lesson = new String[]{"语文", "数学", "英语", "化学", "生物", "物理", "体育"};
                    alert = null;
                    builder = new AlertDialog.Builder(mContext);
                    alert = builder.setIcon(R.mipmap.ic_icon_fish)
                            .setTitle("选择你喜欢的课程")
                           // .setMessage("这是一个最普通的AlertDialog,
    带有三个按钮,分别是取消,中立和确定") //若是设置了这个,下面的setItems就不起作用了
                            //设置列表
                            .setItems(lesson, new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Toast.makeText(getApplicationContext(), "你选择了" + lesson[which], Toast.LENGTH_SHORT).show();
                                }
                            }).create();
                    alert.show();
                    break;
                //单选列表对话框
                case R.id.btn_dialog_three:
                    final String[] fruits = new String[]{"苹果", "雪梨", "香蕉", "葡萄", "西瓜"};
                    alert = null;
                    builder = new AlertDialog.Builder(mContext);
                    alert = builder.setIcon(R.mipmap.ic_icon_fish)
                            .setTitle("选择你喜欢的水果,只能选一个哦~")
                            //单选列表
                            .setSingleChoiceItems(fruits, 0, new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Toast.makeText(getApplicationContext(), "你选择了" + fruits[which], Toast.LENGTH_SHORT).show();
                                }
                            }).create();
                    alert.show();
                    break;
                //多选列表对话框
                case R.id.btn_dialog_four:
                    final String[] menu = new String[]{"水煮豆腐", "萝卜牛腩", "酱油鸡", "胡椒猪肚鸡"};
                    //定义一个用来记录个列表项状态的boolean数组
                    checkItems = new boolean[]{false, false, false, false};
                    alert = null;
                    builder = new AlertDialog.Builder(mContext);
                    alert = builder.setIcon(R.mipmap.ic_icon_fish)
                            //多选列表
                            .setMultiChoiceItems(menu, checkItems, new DialogInterface.OnMultiChoiceClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                                    checkItems[which] = isChecked;
                                }
                            })
                            .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    String result = "";
                                    for (int i = 0; i < checkItems.length; i++) {
                                        if (checkItems[i])
                                            result += menu[i] + " ";
                                    }
                                    Toast.makeText(getApplicationContext(), "客官你点了:" + result, Toast.LENGTH_SHORT).show();
                                }
                            })
                            .setCancelable(false)
                            .create();
                    alert.show();
                    break;
            }
        }
    }
    
  • 相关阅读:
    dotnet 新项目格式与对应框架预定义的宏
    dotnet 线程静态字段
    dotnet 线程静态字段
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取系统信息
    dotnet 通过 WMI 获取系统信息
    PHP show_source() 函数
  • 原文地址:https://www.cnblogs.com/ziyue7575/p/0d15989073255d41bea2512f884b40a8.html
Copyright © 2011-2022 走看看