Android—3分钟你也能学会AlertDialog对话框(2020-6-25)

Android—3分钟你也能学会AlertDialog对话框

在Android开发中,少不了AlertDialog对话框的使用,也是至关重要的一个功能。AlertDialog的构造方法被声明为protected,所以我们不能使用new来创建AlertDialog对象。

确定取消对话框

DialogInterface.BUTTON_NEGATIVE 设立为取消按钮
DialogInterface.BUTTON_NEUTRAL 设立为确定按钮
DialogInterface.BUTTON_POSITIVE 设立为中立按钮
在这里插入图片描述

/******** 取消、确认按钮对话框*********/
button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        AlertDialog alertDialog = new AlertDialog.Builder(AlertDialog_1.this).create();     //创建对象
        alertDialog.setTitle("标题区");
        alertDialog.setMessage("内容区");
        alertDialog.setIcon(R.drawable.ic_launcher_foreground);  //图片区
        alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"取消", new DialogInterface.OnClickListener() {     //DialogInterface.BUTTON_NEGATIVE 设立为取消按钮
            @Override                                                                                                //并对其设置点击监听
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(AlertDialog_1.this,"您点击了否按钮",Toast.LENGTH_LONG).show();
            }
        });
        alertDialog.setButton(DialogInterface.BUTTON_NEUTRAL,"确定", new DialogInterface.OnClickListener() {     //DialogInterface.BUTTON_NEUTRAL 设立为确定按钮
            @Override                                                                                                //并对其设置点击监听
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(AlertDialog_1.this,"您点击了确定按钮",Toast.LENGTH_LONG).show();
            }
        });
       alertDialog.show();                                                                                        //显示对话框
    }
});

带列表的对话框

在这里插入图片描述

    /*****************列表对话框************************/
button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
         final String subject[]=new String[]{"语文","数学","英语"};
         AlertDialog.Builder builder =new AlertDialog.Builder(AlertDialog_1.this);
         builder.setIcon(R.drawable.ic_launcher_foreground);
         builder.setTitle("选择你喜欢的科目:");
         builder.setItems(subject, new DialogInterface.OnClickListener() {    //设置监听
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 Toast.makeText(AlertDialog_1.this,"您选择了"+subject[which],Toast.LENGTH_LONG).show();
             }
         });
         builder.create().show();                                  //创建、显示对话框
    }

});

单选列表对话框

在这里插入图片描述

 /*****************单选列表对话框************************/
button3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        final String subject[]=new String[]{"语文","数学","英语"};
        AlertDialog.Builder builder =new AlertDialog.Builder(AlertDialog_1.this);
        builder.setIcon(R.drawable.ic_launcher_foreground);
        builder.setTitle("选择你喜欢的科目:");
        builder.setSingleChoiceItems(subject, 0,new DialogInterface.OnClickListener() {    //默认选择0
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(AlertDialog_1.this,"您选择了"+subject[which],Toast.LENGTH_LONG).show();
            }
        });

        builder.setPositiveButton("确定",null);        //添加最后的确定按钮,暂不设置监听
         builder.create().show();

    }
});

多选列表对话框

在这里插入图片描述

  /*****************多选列表对话框************************/
        button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final String subject[]=new String[]{"语文","数学","英语"};
                final boolean bool[]=new boolean[]{true,false,false};     //为word设置选中状态
                AlertDialog.Builder builder =new AlertDialog.Builder(AlertDialog_1.this);
                builder.setIcon(R.drawable.ic_launcher_foreground);
                builder.setTitle("选择你喜欢的科目:");
                builder.setMultiChoiceItems(subject, bool, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                        bool[which]=isChecked;        //改变列表项的状态
                    }
                });
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                           String str="";
                           for (int i=0;i<bool.length;i++){
                               if (bool[i]) str=str+" "+subject[i];
                           }
                           if(!str.equals(""))
                        Toast.makeText(AlertDialog_1.this,str,Toast.LENGTH_LONG).show();
                    }

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

        });
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44758662/article/details/106957118