Android基础——对话框

时间:2022-03-02 13:46:57

写了四种对话框

布局文件

<?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"
    tools:context=".MainActivity">

    <Button
        android:id="@ id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="确定取消对话框" />
    <Button
        android:id="@ id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="列表对话框"/>
    <Button
        android:id="@ id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="单选列表框"/>
    <Button
        android:id="@ id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="多选列表框"/>

</LinearLayout>

java代码

package com.example.mydialogi;

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

import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

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

        /*
        * 带“确定”“取消”按钮的对话框
        * */
        Button button1 = (Button)findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //创建一个AlterDialog对象
                AlertDialog alertDialog = new AlertDialog.Builder(
                        MainActivity.this
                ).create();
                alertDialog.setIcon(R.drawable.b);
                alertDialog.setTitle("标题");
                alertDialog.setMessage("内容");
                //设置按钮及其响应
                alertDialog.setButton(
                        DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(
                                        MainActivity.this,"选择了取消",Toast.LENGTH_SHORT
                                ).show();
                            }
                        }
                );
                alertDialog.setButton(
                        DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(
                                        MainActivity.this,"选择了确定",Toast.LENGTH_SHORT
                                ).show();
                            }
                        }
                );
                alertDialog.show();
            }
        });

        /*
        *   列表对话框
        * */
        Button button2 = (Button)findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //带四个列表项的列表对话框
                final String[] Items = new String[]{
                        "A","B","C","D"
                };
                //创建一个Builder对象
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.drawable.b);
                builder.setTitle("标题");
                //添加列表项
                builder.setItems(Items, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(
                                MainActivity.this,"选择了【" Items[which] "】",Toast.LENGTH_SHORT
                        ).show();
                    }
                });
                builder.create().show();//创建并显示对话框
            }
        });

        Button button3 = (Button)findViewById(R.id.button3);
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //带单选列表项的对话框
                final String[] items = new String[]{
                        "A","B","C","D"
                };
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("标题");
                builder.setIcon(R.drawable.b);
                //添加列表项
                builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(
                                MainActivity.this,"选择的是【" items[which] "】",Toast.LENGTH_SHORT
                        ).show();
                    }
                });
                //添加确定按钮
                builder.setPositiveButton("确定",null);
                builder.create().show();
            }
        });

        /*
        * 带多选列表项的对话框
        * */
        Button button4 = (Button)findViewById(R.id.button4);
        button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final boolean[] checkedItems = new boolean[]{
                    false,true,false,true,false
                };
                final String[] items = new String[]{
                        "A","B","C","D","E"
                };
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.drawable.b);
                builder.setTitle("标题");
                builder.setMultiChoiceItems(
                        items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                               checkedItems[which]=isChecked;//改变被操作选项的状态

                            }
                        }
                );
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String result = "";
                        for(int i=0;i<items.length;i  ){
                            if(checkedItems[i]==true){
                                result  = items[i]   " ";
                            }
                        }
                        if(!"".equals(result)){
                            Toast.makeText(
                                    MainActivity.this,"已选择了【" result "】",Toast.LENGTH_SHORT
                            ).show();
                        }
                    }
                });//添加确定按钮
                builder.create().show();
            }
        });
    }
}