AlertDialog对话框的简单使用

目录

一、对话框的创建

二、单选的对话框

三、多选的对话框

一、对话框的创建

        一般的对话框分为标题、内容、按钮三大部分。

常见的方法:

方法 功能
setTitle() 设置对话框的标题
setIcon() 设置对话框的图标
setMessage() 设置对话框的提示信息
setPositiveButton() 设置对话框的确认按钮
setNegativeButton() 设置对话框的取消按钮
setSingleChoiceItems() 设置单选的对话框
setMultiChoiceItems() 设置多选的对话框
dismiss() 关闭对话框
 DialogInterface.OnClickListener() 设置对话框的点击事件

 对话框创建步骤:

1、声明AlertDialong对象

2、调用AlertDialog的内部类Builder,设置相关属性。

3、创建对话框 ( dialog = builder.create()  )

4、显示对话框( dialog.show() )

代码如下:

package com.example.alertdialog;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    // 当想要退出APP时,调用该方法
    @Override
    public void onBackPressed() {
        // 声明对象
        AlertDialog dialog;
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("普通的对话框")
                .setIcon(R.mipmap.ic_launcher)
                .setMessage("您确定要退出吗?")
                .setPositiveButton("确认", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss(); // 关闭对话框
                        MainActivity.this.finish(); // 退出APP
                    }
                })
                // 添加取消按钮
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // 点击取消,对话框消失
                        dialog.dismiss();
                    }
                });
        // 创建对话框
        dialog = builder.create();
        // 显示对话框
        dialog.show();
    }
}

效果:

AlertDialog对话框的简单使用_第1张图片

二、单选的对话框

        案例:通过单选对话框改变字体的颜色

效果图:

AlertDialog对话框的简单使用_第2张图片

MainActivity:

package com.example.alertdialog_single_choice;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView mTextView;
    Button btn;
    // 颜色数组
    Integer []textColors = {android.R.color.holo_green_light,R.color.black, android.R.color.holo_blue_dark, android.R.color.holo_red_dark};
    // 数组索引
    int index = 1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = findViewById(R.id.btn);
        mTextView = findViewById(R.id.content);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog dialog;
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this)
                        .setTitle("设置字体颜色")
                        .setIcon(R.mipmap.ic_launcher)
                        // 设置单选的内容
                        .setSingleChoiceItems(new String[]{"绿色","黑色", "蓝色", "红色"}, index, new DialogInterface.OnClickListener() {
                            // which 就是选到那个item的位置
                            public void onClick(DialogInterface dialog, int which) {
                                // 获取数组的索引
                                index = which;
                            }
                        })
                        // 确认按钮
                        .setPositiveButton("确认", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // 确认就设置字体的颜色
                                mTextView.setTextColor(getResources().getColor(textColors[index]));
                                dialog.dismiss();
                            }
                        })
                        // 取消按钮
                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
                            }
                        });
                // 创建dialog对象
                dialog = builder.create();
                // 显示对话框
                dialog.show();
            }
        });
    }
}

布局: 




    
    

三、多选的对话框

        案例:通过多选对话框选择自己的兴趣爱好,并显示到文本框。

效果:

AlertDialog对话框的简单使用_第3张图片

MainActivity:

 package com.example.alertdialog_multiple_choice;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

 public class MainActivity extends AppCompatActivity {

     private TextView mTextView;
     private Button mButton;
     private String []hobbies ={"看电影","旅游","运动","听音乐"};
     private boolean []checked = {false,false,false,false};
     @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         mTextView = findViewById(R.id.text_view);
         mButton = findViewById(R.id.btn);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog dialog;
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this)
                        .setTitle("请选择你的兴趣")
                        .setIcon(R.mipmap.ic_launcher)
                        .setMultiChoiceItems(hobbies, checked, new DialogInterface.OnMultiChoiceClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                                checked[which] = isChecked;
                            }
                        })
                        .setPositiveButton("确认", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                StringBuilder stringBuilder = new StringBuilder();
                                for (int i = 0; i < checked.length; i++) {
                                    if (checked[i]){
                                        stringBuilder.append(hobbies[i]).append(" ");
                                    }
                                    if (stringBuilder!=null){
                                        mTextView.setText(stringBuilder);
                                    }
                                }
                                dialog.dismiss();
                            }
                        })
                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
                            }
                        });
            dialog = builder.create();
            dialog.show();
            }
        });
    }
}

布局:




    
    

你可能感兴趣的:(UI,android,java,开发语言)