Android之AlerDialog实现对话框

AlerDialog在一个子类可以显示一个对话框,两个或三个按钮。如果你只是想显示一个字符串在这个对话框中,使用setMessage()方法。如果你想显示一个更复杂的视图,查找FrameLayout叫做“定制”并添加你的视图:

 

 

对AlerDialog是现实了、普通对话框,列表对话框,单选对话框,以及多选对话框。在java文件里一定要写AlerDialog的实现方法

builder.create().show();不然AlerDialog不起作用,但是程序也不报错,很难发现。

activity_main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<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="com.example.a13468.mydemo18_alerdialog.MainActivity"
    >

    <Button
        android:id="@+id/btn1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#0c13ed"
        android:background="#00ff8c"
        android:textSize="25sp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="20dp"
        android:onClick="doBtn1"
        android:text="显示带取消,确定按钮的对话框"/>
    <Button
        android:id="@+id/btn2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#ed5e0c"
        android:background="#500de2"
        android:textSize="30sp"
        android:onClick="doBtn2"
        android:layout_marginBottom="20dp"
        android:text="显示带列表的对话框"/>

    <Button
        android:id="@+id/btn3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#0cdeed"
        android:background="#ddff00"
        android:textSize="30sp"
        android:onClick="doBtn3"
        android:layout_marginBottom="20dp"
        android:text="显示带单选列表项的对话框"/>

    <Button
        android:id="@+id/btn4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#0cdeed"
        android:background="#ff2f00"
        android:textSize="30sp"
        android:onClick="doBtn4"
        android:layout_marginBottom="20dp"
        android:text="显示带多选列表的对话框"/>

</LinearLayout>

 MainActivity.java文件:

package com.example.a13468.mydemo18_alerdialog;
/**
 * AlerDialog实现对话框
 */

import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends Activity {
    private Button btn1;
    private Button btn2;
    private Button btn3;
    private Button btn4;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1=findViewById(R.id.btn1);
        btn2=findViewById(R.id.btn2);
        btn3=findViewById(R.id.btn3);
        btn4=findViewById(R.id.btn4);




        /**
         * 显示列表对话框
         */
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //创建AlerDialgo方法且实例化
                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
                final String[]items=new String[]{"百度","腾讯","阿里巴巴","华为"};//创建列表类容
                builder.setIcon(R.mipmap.logo);//添加图标
                builder.setTitle("你喜欢哪家公司?");//添加开头
                //添加列表项
                builder.setItems(items, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "你选择了"+items[i]+"公司", Toast.LENGTH_SHORT).show();
                    }
                });
                builder.create().show();
            }

        });

        /**
         * 显示带单选按钮的列表对话框
         */
        btn3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //创建AlerDialog方法且实例化
                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
                final String items[]=new String[]{"赵","钱","李","孙","秦"};//创建列表内容
                builder.setIcon(R.mipmap.logo);//添加图标
                builder.setTitle("您姓什么");//添加标题
                builder.setPositiveButton("确定",null);//添加确定按钮,null表示没有对按钮设置监听
                //添加列表项
                builder.setItems(items, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "你选择的姓是【"+items[i]+"】", Toast.LENGTH_SHORT).show();
                    }
                });

                builder.create().show();
            }
        });


        /**
         * 显示复选按钮对话框
         */
        btn4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
                final boolean Clickitems[]=new boolean[]{false,true,false,false,true};
                final String items[]=new String[]{"电影","跑步","看书","唱歌","编程"};
                builder.setIcon(R.mipmap.logo);
                builder.setTitle("你有什么爱好?");
                //添加列表项
                builder.setMultiChoiceItems(items,Clickitems, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i, boolean b) {

                        Clickitems[i]=b;//改变被操作列表项的状态

                    }
                });
                //添加确定按钮
                builder.setPositiveButton("确定", new DatePickerDialog.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        String result="";//记录结果
                        for(int a=0;a<Clickitems.length;a++){
                            if(Clickitems[a]){
                                result+=items[a];//把列表类容,添加到result中
                            }

                        }
                        if(!"".equals(result)){
                            Toast.makeText(MainActivity.this, "你选择了【"+result+"】", Toast.LENGTH_SHORT).show();
                        }
                    }
                });

                builder.create().show();
            }
        });


    }
    /**
     * 取消确定按钮对话框(普通对话框)
     * @param v
     */
    public void doBtn1(View v ){
        AlertDialog alertDialog=new AlertDialog.Builder(MainActivity.this).create();//创建AlerDialog对象且实例化
        alertDialog.setIcon(R.mipmap.logo);//设置图标
        alertDialog.setTitle("AlerDialog");//设置标题
        alertDialog.setMessage("你真的要退出吗");//设置内容
        alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this, "您好狠心!!", Toast.LENGTH_SHORT).show();
            }
        });//确定按钮
        alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this, "看来您是爱我的", Toast.LENGTH_SHORT).show();
            }
        });//添加取消按钮
        alertDialog.show();
    }


}

猜你喜欢

转载自blog.csdn.net/weixin_42370957/article/details/84503499