Android-Dialog

摘要:
Android Dialog是一个小窗口,提示用户进行选择或输入其他信息。它通常不会占据整个屏幕。与用户交互。以下是创建对话框的一些方法:主要使用AlterDialog类。AlterDialog的构造方法受修饰符保护,因此不能在保修期外使用,因此我们应该使用生成器。1.使用AlterDialog生成器创建privatevoidshowNorm

Android-Diaolog

  对话框是提示用户做出选择或是输入额外信息的小窗口,通常不会占满整个屏幕,与用户进行交互

  下面介绍一些Dialog对话框的创建方式:主要使用AlterDialog类进行创建,AlterDialog的构造方法被修饰文protected,因此无法在保外使用,所以要利用构建器

1.使用AlterDialog 构建器Builder 进行创建

private void showNormalDialog1() {
        /*PositiveButton = -1; NegativeButton = -2; NeutralButton = -3;
          3种创建对话框按钮方法本身是一样的,
          只用来确定按钮在对话框中得位置,对应的位置分别是右、中、左.*/
        //AlterDialog的构造方法被修饰文protected,因此无法在保外使用,所以要利用构建器
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //对话框的标题和内容
        builder.setTitle("提示").setMessage("是否退出当前程序")
                //设置按钮"是"
                .setPositiveButton("是", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        MainActivity.this.finish();
                    }
                })
                //设置按钮"否"
                .setNegativeButton("否", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
            }
        }).setNeutralButton("关闭",null);
        //show()方法默认创建对话框,然后展示对话框
        builder.show();
    }

效果图:

Android-Dialog第1张

2.利用AlertDialog.Builder的creat方法创建AlertDialog对象

 private void showNormalDialog2() {
        //利用AlertDialog.Builder的creat方法创建AlertDialog对象
        final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
        //设置标题和内容
        alertDialog.setTitle("评分");
        alertDialog.setMessage("请为本次节目打分");
        //设置按钮与监听事件
        alertDialog.setButton(-1, "5分", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this,alertDialog.getButton(i).getText().toString(),Toast.LENGTH_SHORT).show();
            }
        });
        alertDialog.setButton(-2, "3分", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this,alertDialog.getButton(i).getText().toString(),Toast.LENGTH_SHORT).show();
            }
        });
        alertDialog.setButton(-3, "1分", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this,alertDialog.getButton(i).getText().toString(),Toast.LENGTH_SHORT).show();
            }
        });
        //千万不要忘记这一步哦
        alertDialog.show();
    }

效果图:

Android-Dialog第2张

3.创建列表对话框

private void showListDialog() {
        //创建列表对话框选项
        final String[] str = {"支付宝","微信","QQ钱包","银行卡"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
        .setTitle("请选择支付方式")
        //参数1:所要显示的列表项 参数2:点击事件
        .setItems(str, new DialogInterface.OnClickListener() {
            @Override
            //参数2:点击项的索引
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this,str[i],Toast.LENGTH_LONG).show();
            }
        });
        builder.show();
    }

效果图:

Android-Dialog第3张

4.创建单选对话框

 private void showSingleDialog() {
        final String[] str ={"苍井空","波多野结衣","新垣结衣","小泽玛利亚"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("请选择最喜欢的明星")
                .setSingleChoiceItems(str, 0, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        index = i;
                    }
                })
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, str[index],Toast.LENGTH_LONG).show();
                    }
                });
        builder.show();
    }

效果图

Android-Dialog第4张

呃呃呃呃呃呃呃~~~~~~~~你懂的

5.创建多选对话框

private void showMultiDialog() {
        final String[] str = {"跑步","篮球","健身","打游戏"};

         final boolean[] chected = {true,false,false,false};
        final AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("请选择最喜欢的运动")
                //参数1:选项 参数2:默认备选项(true 选中,false 未选中) 参数3:点击事件
                .setMultiChoiceItems(str, chected, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    //参数1:对话框本身对象 参数2:按钮索引 参数3:标识按钮是否处于被选中的状态
                    public void onClick(DialogInterface dialogInterface, int i, boolean b) {

                    }
                }).setPositiveButton("确认", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        StringBuilder msg = new StringBuilder("您的爱好是:");
                        for(int j = 0;j < chected.length;j++){
                            if(chected[j]){
                                msg.append(str[j] + " " );
                            }
                        }
                        Toast.makeText(MainActivity.this,msg,Toast.LENGTH_LONG).show();
                    }

                });
        builder.show();
    }

效果图

Android-Dialog第5张

6.创建等待对话框

private void showWaitingDialog() {
        ProgressDialog dialog = new ProgressDialog(this);
        dialog.setTitle("请等待");
        dialog.setMessage("正在准备中....");
        //设置对话框显示 默认true
        // false点击不显示  任务执行完成后可使用dismiss方法设置对话框消失
        dialog.setCancelable(false);
        dialog.show();
    }

效果图:

Android-Dialog第6张

7.创建进度条对话框

private void showProgressDialog() {
        final ProgressDialog dialog = new ProgressDialog(this);
        dialog.setTitle("下载中");
        dialog.setMessage("请等待");
        //设置进度条模糊
        dialog.setIndeterminate(false);
        //设置进度条样式
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        dialog.show();
        //设置任务线程进度
        new Thread(){
            @Override
            public void run() {
                for(int i = 1;i<100;i++){
                    dialog.setProgress(i);
                    try {
                        sleep(50);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                //循环结束,关闭对话框
                dialog.dismiss();
            }

        }.start();
    }

效果图:

Android-Dialog第7张

8.创建输入对话框

private void showInputDialog() {
        final EditText et = new EditText(this);
        Resources resources = getBaseContext().getResources();
        Drawable drawable = resources.getDrawable(R.drawable.et_shape);
        et.setBackground(drawable);//输入框样式
        et.setInputType(InputType.TYPE_CLASS_NUMBER);//限制输入内容为纯数字
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("请输入您的手机号:")
                .setView(et)
                .setPositiveButton("确认", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this,et.getText().toString(),Toast.LENGTH_LONG).show();
                    }
                });
        builder.show();
    }

效果图:

Android-Dialog第8张

9.使用ArrayAdapter创建对话框

private void showArrayDialog() {
        final String[] sre = {"异界","都市","神话","言情","洪荒"};
        //数组适配器
        //参数1:环境 参数2:布局资源引用
//        ArrayAdapter arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,sre);
        //参数3:int TextView 制定文本所需要放在布局文件中textview的对应id
        ArrayAdapter arrayAdapter = new ArrayAdapter(this,R.layout.array_layout,R.id.textview1,sre);
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("请选择")
                //参数1:适配器对象(对象显示样式规则制定)
                //参数2:监听器
                .setAdapter(arrayAdapter, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this,sre[i],Toast.LENGTH_LONG).show();
                        dialogInterface.dismiss();
                    }
                });
        builder.show();
    }

效果图:

Android-Dialog第9张

10.自定义对话框

Main_activity类

 //自定义对话框
                //1.自定义一个类继承Dialog,并加载自定义布局
                // 2.设定自定义风格(不显示标题栏,不显示背景)  在资源文件夹 styles中修改
                // 3.(1)在自定义类的构造super添加style (2)直接重写含style参数的构造方法
                // 4.在自定义类中设定监听事件
                MyDialog myDialog = new MyDialog(this);
                myDialog.show();
            /*    Window dialogWindow = myDialog.getWindow();
                //获取当前对话框的宽 高
                WindowManager.LayoutParams layoutParams = dialogWindow.getAttributes();
                //对齐方式
                dialogWindow.setGravity(Gravity.CENTER);
                //宽 高
                layoutParams.width = 500;
                layoutParams.height = 300;
                //透明度
                layoutParams.alpha = 0.7f;
                dialogWindow.setAttributes(layoutParams);*/

MyDialog类 自定义dialog类

public class MyDialog extends Dialog {

    public MyDialog(Context context) {
        //参数2:对话框自定义风格
        super(context,R.style.mydialog);
        setContentView(R.layout.title);
        //自定义类中添加监听事件
        findViewById(R.id.bt11).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                System.exit(0);
            }
        });
        findViewById(R.id.bt12).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dismiss();
            }
        });
    }
}

style样式修改

 <style name="mydialog" parent="android:style/Theme.Dialog">
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowBackground">@android:color/transparent</item>
    </style>

windowNoTitle:修改标题为无标题

windowsBackground :修改背景为透明

 效果图:

Android-Dialog第10张

免责声明:文章转载自《Android-Dialog》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Win7 Python开发环境搭建ClientDataSet控件ApplyUpdates的异常触发下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[转]Android使用WebView从相册/拍照中添加图片

原地址:http://blog.csdn.net/djcken/article/details/46379929 解决这个问题花了很长时间搜索了解,网上大部分使用openFileChooser但都没解决一个存在的问题。就是当弹出选择图片/相机框之后,取消选择,就再也不能点击选择按钮了。这篇文章是为了记录这一点,为验证整个流程部署了后端,但是由于很久没接触后...

JavaScript DOM元素常见操作详解【添加、删除、修改等】

本文实例讲述了JavaScript DOM元素常见操作。分享给大家供大家参考,具体如下: DOM概念 DOM(Document Object Model):文档对象模型。 通过开发者工具的Elements标签页可以查看 通过开发者工具的Sources标签页也可以观察到整个文档是有一系列节点 整个文档是由一系列节点对象组成的一棵树。 节点(Node)包括元素...

web页面弹出窗口代码大全

//-----------按钮提示框----------// <input type="button" name="btn2" id="btn2" value="删除" onclick="return confirm('Yes/No');); //-----------按钮提示框----------// <input type="but...

WebService客户端调用错误处理

错误处理 •调用时可以提供一个额外的错误回调函数 •包括超时和服务器端抛出的异常 •超时只能设置在WebService级别 –或者设置在PageMethods对象上 –无法在每个MethodCall时指定 •Sys.Net.WebServiceError –timedout、message、exceptionType、stackTrace属性 aspx  ...

H50073:div 循环添加点击事件,swiper循环添加点击事件

1,div 循环添加点击事件 <div class="video home_video"> <div class="videolist"vpath="4.mp4"ipath="4.mp4"><img src="../common/images/theme/default/video_icon.png"&...

jQuery EasyUI教程之datagrid应用

一、利用jQuery EasyUI的DataGrid创建CRUD应用       对网页应用程序来说,正确采集和管理数据通常很有必要,DataGrid的CRUD功能允许我们创建页面来列表显示和编辑数据库记录。本教程将教会你如何运用jQuery EasyUI框架来实现DataGrid的CRUD功能 。 我们会用到如下插件: · datagrid: 列表显示数...