Android 五种常用的对话框

Android 五种常用的对话框

第一步:安卓界面布局
添加5个按钮,点击可显示不同的对话框效果
布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/b1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:text="第一种对话框"/>

    <Button
        android:id="@+id/b2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:text="第二种对话框"/>

    <Button
        android:id="@+id/b3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:text="第三种对话框"/>

    <Button
        android:id="@+id/b4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:text="第四种对话框"/>

    <Button
        android:id="@+id/b5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:text="第五种对话框"/>

</LinearLayout>

界面截图:
在这里插入图片描述
第二步:实现功能
第一种对话框(信息对话框),界面截图:
在这里插入图片描述
代码如下:

        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new AlertDialog.Builder(MainActivity.this)
                        .setIcon(R.mipmap.wx)//设置图标
                        .setTitle("删除记录确认")//设置标题
                        .setMessage("是否删除该记录")//设置内容
                        .setPositiveButton("是", new DialogInterface.OnClickListener() {//点击是的监听事件
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                Toast.makeText(MainActivity.this,"删除记录成功",Toast.LENGTH_SHORT).show();
                            }
                        })
                        .setNegativeButton("否", new DialogInterface.OnClickListener() {//点击否的监听事件
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                Toast.makeText(MainActivity.this,"取消删除记录",Toast.LENGTH_SHORT).show();
                            }
                        })
                        .show();//显示
            }
        });

第二种对话框(选择对话框),界面截图:
在这里插入图片描述
代码如下:

b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final String[]color={"Green","Red","Blue","Yellow","White"};//添加一个数组来保存内容
                new AlertDialog.Builder(MainActivity.this)
                        .setTitle("请选择颜色")//设置标题
                        .setSingleChoiceItems(color, 0, new DialogInterface.OnClickListener() {//显示内容,并添加监听事件
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                switch(color[i])
                                {
                                    case "Green":
                                        Toast.makeText(MainActivity.this,"Green",Toast.LENGTH_SHORT).show();
                                        break;
                                    case "Red":
                                        Toast.makeText(MainActivity.this,"Red",Toast.LENGTH_SHORT).show();
                                        break;
                                    case "Blue":
                                        Toast.makeText(MainActivity.this,"Blue",Toast.LENGTH_SHORT).show();
                                        break;
                                    case "Yellow":
                                        Toast.makeText(MainActivity.this,"Yellow",Toast.LENGTH_SHORT).show();
                                        break;
                                    case "White":
                                        Toast.makeText(MainActivity.this,"White",Toast.LENGTH_SHORT).show();
                                        break;

                                }
                            }
                        })
                        .show();//显示
            }
        });

第三种对话框(自定义对话框),界面截图:
在这里插入图片描述
在实现功能之前,对话框要先自定义布局,首先创建一个xml文件来布局当前的对话框,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:padding="20dp"
    android:layout_height="match_parent">
    <EditText
        android:id="@+id/e1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:hint="用户名"/>
    <EditText
        android:id="@+id/e2"
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:hint="密码"/>
</LinearLayout>

代码如下:

        b3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                View view1=View.inflate(MainActivity.this,R.layout.diglog,null);//找到自定义对话框的xml文件
                final EditText e1=view1.findViewById(R.id.e1);//用户名编辑框绑定ID
                final EditText e2=view1.findViewById(R.id.e2);//密码编辑库绑定ID
                new AlertDialog.Builder(MainActivity.this)
                        .setTitle("自定义对话框")//设置标题
                        .setCancelable(false)//点击屏幕空白处,对话框不会消失
                        .setView(view1)//设置布局
                        .setPositiveButton("登陆", new DialogInterface.OnClickListener() {//点击登陆的监听事件
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                String user=e1.getText().toString().trim();//得到用户名
                                String password=e2.getText().toString().trim();//得到密码
                                Toast.makeText(MainActivity.this,"用户名:"+user+"\n"+"密码:"+password,Toast.LENGTH_SHORT).show();
                            }
                        })
                        .show();//显示
            }
        });

第四种对话框(带进度条的对话框),界面截图:
在这里插入图片描述
代码如下:

        b4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final ProgressDialog progressDialog=new ProgressDialog(MainActivity.this);//定义进度条对话框
                progressDialog.setTitle("带对话框的进度条");//设置标题
                progressDialog.setProgressStyle(progressDialog.STYLE_HORIZONTAL);//垂直进度条样式
                progressDialog.setCancelable(false);//点击空白处,对话框不消失
                progressDialog.show();//显示

                new Thread(new Runnable() {//开启多线程让进度条0.1秒滑动一次
                    @Override
                    public void run() {
                        for (int i=0;i<=100;i++)//从0到100
                        {
                            try {
                                Thread.sleep(100);//0.1秒更新一次
                            }
                            catch (Exception e)
                            {
                                e.printStackTrace();
                            }
                            progressDialog.setProgress(i);
                        }
                        progressDialog.dismiss();//当进度条达到100%时,对话框消失
                    }
                }).start();//开启多线程
            }
        });

第五种对话框(日期对话框),界面截图:
在这里插入图片描述
代码如下:

b5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Calendar calendar=Calendar.getInstance();//定义日期控件
                final int year=calendar.get(Calendar.YEAR);//获取年
                final int month=calendar.get(Calendar.MONTH);//获取月
                final int day=calendar.get(Calendar.DAY_OF_MONTH);//获取日
                new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {//点击确定的监听事件
                    @Override
                    public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                        Toast.makeText(MainActivity.this,i+"年"+i1+"月"+i2+"日",Toast.LENGTH_SHORT).show();
                    }
                },year,month,day).show();//显示内容
            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值