Android学习笔记使用AlertDialog实现对话框

使用AlertDialog可以实现如下对话框

案例

布局问文件就加了几个Button,我直接上Java代码了

  • 实现显示带取消,确定按钮的对话框按钮
Button showDialogOne = findViewById(R.id.showDialog_one);
        showDialogOne.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                AlertDialog alertDialog = new
                        AlertDialog.Builder(MainActivity.this).create();
                //创建AlertDialog对象
                alertDialog.setIcon(R.drawable.apple);//设置图标
                alertDialog.setTitle("一个战5渣:");//设置标题
                alertDialog.setTitle("苟活性命于互联网,我太难了,是吧?");
                alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE,
                        "否", new Dialog.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(
                                        MainActivity.this, "您单击了否按钮",
                                        Toast.LENGTH_SHORT).show();
                            }
                        });//取消按钮

                alertDialog.setButton(DialogInterface.BUTTON_POSITIVE,
                        "是", new Dialog.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(
                                        MainActivity.this, "您单击了是按钮",
                                        Toast.LENGTH_SHORT).show();
                            }
                        });//取消按钮
                alertDialog.show();
            }
        });

效果:

  • 显示带列表的对话框按钮
    MainActivity.java
       /**********显示带列表的对话框按钮***************/
        Button button2 = findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                //带4个列表项的列表对话框
                final String[] items = new String[]{"当你有了钱,它会让你更专注",
                        "abcdefg",
                        "为什么我还没有钱",
                        "求钱若渴",
                        "求财若饥"};//列表数组
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                //创建AlertDialog.Builder对象
                builder.setIcon(R.drawable.apple);
                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[]{"乔布斯","马云","扎克伯格","陆奇"};
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.drawable.apple);
                builder.setTitle("如果让你选择,你最想做哪一个:");
                builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this,"您选择了【"+items[which]+"】",
                                Toast.LENGTH_LONG).show();
                    }
                });
                builder.setPositiveButton("确定",null);
                builder.create().show();//创建并显示对话框
            }
        });

  • 显示带多选列表项的对话框按钮
 Button button4 = findViewById(R.id.button4);
        button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final boolean[] checkedItems = new boolean[]{false,false,true};//记录各列表项的状态
                final String[] items = new String[]{"开心消消乐","球球大作战","王者荣耀"};
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                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<checkedItems.length;i++){
                            if(checkedItems[i]){
                                result += items[i]+"、";//把选择项的内容添加到result中
                            }
                        }
                        if(!"".equals(result)){
                            Toast.makeText(MainActivity.this,
                                    "您选择了["+result+"]",Toast.LENGTH_SHORT).show();
                        }
                    }
                });
                builder.create().show();
            }
        });
    }

总结

posted @ 2020-06-05 22:56  千雨千寻  阅读(207)  评论(0编辑  收藏  举报