android普通对话框、单选对话框、多选对话框、自定义对话框的简单实现

普通对话框:

//点击事件
 pt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //创建窗口,通过AlertDialog.Builder这个类实例化我们一个AlertDialog对象
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                //设置窗体
                builder.setTitle("这是一个普通对话框");
                builder.setIcon(R.mipmap.ic_launcher);
                builder.setMessage("这是窗口内容");
                //设置取消按钮
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //吐司弹窗提示点击取消
                        Toast.makeText(MainActivity.this, "点击了取消", Toast.LENGTH_SHORT).show();
                    }
                });
                //设置确定按钮
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    //吐司弹窗提示点击了确定按钮
                        Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show();
                    }
                });
                //显示出来
                builder.show();
            }
        });

单选对话框:

//点击事件
dx.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //通过AlertDialog.Builder这个类实例化我们一个AlertDialog对象
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("请选择你所在的城市:");//设置标题
                final String[] citys = {"漳州", "厦门", "泉州"};//定义选项
                //设置单选框窗口
                builder.setSingleChoiceItems(citys, 0, new DialogInterface.OnClickListener() {//citys:citys数组
                //0:默认选中数组下标为0的那个值,不设置默认值设:-1
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    //吐司弹窗
                        Toast.makeText(MainActivity.this, "你选择城市为:" + citys[which], Toast.LENGTH_SHORT).show();
                    }
                });
                //取消按钮
                builder.setNegativeButton("取消", null);
                //确定按钮
                builder.setPositiveButton("确定", null);
                //显示出来
                builder.show();
            }
        });

多选对话框

//点击事件
danx.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("多选消息框");
                String[] like = {"篮球", "排球", "足球", "活塞运动"};
                boolean[] checkedItems = {true, false, false, true};
                builder.setMultiChoiceItems(like, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {

                    }
                });
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        //把选中的条目的数据取出来
                        //StringBuffer sb = new StringBuffer();
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

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

多选对话框:
MainActivity:

//点击事件
diy.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                MyDialog myDialog = new MyDialog(MainActivity.this);
                myDialog.setTitle("小肥娃提醒您:");
                myDialog.setMsg("行车不规范,亲人两行泪");
                myDialog.show();
            }
        });

MyMyDialog类:

package com.example.xiaofeiwa.xiaoxikuang;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MyDialog extends Dialog {
    private TextView tvTitle;//标题文本框
    private TextView tvMsg;//提示内容文本框
    private Button btnOk;//确认按钮
    private Button btnCancel;//取消按钮
    private String title;

    public void setTitle(String title) {
        this.title = title;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    private String msg;

    public MyDialog(@NonNull Context context) {
        super(context);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //去掉原有的标题
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        //requestWindowFeature(Window.FEATURE_NO_TITLE);
        //设置对话框的布局
        setContentView(R.layout.my_dialog);

        //初始化控件
        tvTitle = findViewById(R.id.tvTitle);
        tvMsg = findViewById(R.id.tvMsg);
        btnOk = findViewById(R.id.btnOK);
        btnCancel = findViewById(R.id.btnCancel);
        // 设置文本框文本
        tvTitle.setText(title);
        tvMsg.setText(msg);
        btnOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getContext(), "您点击了确认按钮", Toast.LENGTH_SHORT).show();
                dismiss();
            }
        });
        btnCancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getContext(), "您点击了取消按钮", Toast.LENGTH_SHORT).show();
                dismiss();
            }
        });
    }
}

自定义布局代码:




    

    


    
        

主布局代码:




    
    

你可能感兴趣的:(Android)