【鼠】安卓学习杂记(二十一)——Android之Dialog之多选对话框

一、效果图

二、代码(着重看核心代码——Builder构建器创建)
package com.example.administrator.app_dialog;

import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    Button btn1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化视图
        initView();
        //设置点击事件
        myClick();
    }
    //初始化视图
    private void initView() {
        btn1 = findViewById(R.id.btn1);
    }
    //设置点击事件
    private void myClick(){
        btn1.setOnClickListener(this);
    }
    //设置点击事件
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn1:
                //预先创建菜单数组
                final String[] items = {"菜单一","菜单二","菜单三","菜单四","菜单五"};
                //预先创建菜单项被选状态
                final boolean[] checked = {true,false,true,true,false};
                //创建对话框——Dialog核心代码
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                //设置标题
                builder.setTitle("这是标题");
                //设置菜单,参数1:选项(数组);参数2:默认被选中项(数组),传索引;参数3:点击事件
                builder.setMultiChoiceItems(items, checked, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    //onClick参数解释:参数1:对话框本身;参数2:按钮的索引;参数3:按钮是否处于被选状态
                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                        //设置点击事件,在此实现将布尔值进行切换
                        checked[which] = isChecked;
                    }
                }).setPositiveButton("肯定按钮", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //肯定按钮点击事件
                        for(int i=0;i<checked.length;i++) {
                            if (checked[i]) {
                                Toast.makeText(MainActivity.this, items[i] + "被选中", Toast.LENGTH_SHORT).show();
                            }
                        }
                    }
                });
//                //三种按钮的另一种写法,每个对话框都可以设置三种按钮
//                builder.setPositiveButton("肯定按钮", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        //肯定按钮点击事件
//
//                    }
//                });
                //创建对话框
                builder.create();
                //显示对话框
                builder.show();
                break;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_29689343/article/details/81052014