dialog 订阅
DIALOG系统是目前世界上规模最大、影响最广泛的综合性商业信息检索系统,覆盖各行业的900多个数据库,其数据类型主要有4种,即文献型、数值型、名录字典型、全文型,涉及40多个语种7000多种期刊。Dialog收录的信息涉及的专业范围广泛,按涉及学科的领域被分为20类。信息总量约15TB,共有14亿条记录,文档的专业范围涉及综合性学科、自然科学、应用科学和工艺学、社会科学和人文科学、商业经济和时事报导等诸多领域。在Dialog系统资源中,各种类型的商业性数据库多达400个左右,占有举足轻重的地位。存储的文献型和非文献型记录占世界各检索系统数据库文献总量的一半以上。Dialog系统在全球六个大洲100多个国家保有两万五千位客户。 展开全文
DIALOG系统是目前世界上规模最大、影响最广泛的综合性商业信息检索系统,覆盖各行业的900多个数据库,其数据类型主要有4种,即文献型、数值型、名录字典型、全文型,涉及40多个语种7000多种期刊。Dialog收录的信息涉及的专业范围广泛,按涉及学科的领域被分为20类。信息总量约15TB,共有14亿条记录,文档的专业范围涉及综合性学科、自然科学、应用科学和工艺学、社会科学和人文科学、商业经济和时事报导等诸多领域。在Dialog系统资源中,各种类型的商业性数据库多达400个左右,占有举足轻重的地位。存储的文献型和非文献型记录占世界各检索系统数据库文献总量的一半以上。Dialog系统在全球六个大洲100多个国家保有两万五千位客户。
信息
服务项目
各种类型信息检索、定题服务、原文定购(Email、FAX或邮寄)等
类    型
文献型、数值型、名录字典型、全文型
总    部
美国加利福利亚州的帕洛阿尔托
外文名
DIALOG
定    位
商业信息检索系统
领    域
综合性学科、自然科学、应用科学和工艺学等
DIALOG系统简介
其中心设在美国加利福利亚州的帕洛阿尔托(Palo Alto)市,在27个国家有直接业务,为103个国家的用户提供服务。其提供的服务项目有:各种类型信息检索、定题服务、原文定购(Email、FAX或邮寄)等利用DIALOG系统,可进行项目查新、文献调研、课题立项、申报专利、了解市场动态和竞争对手、新产品开发、公司的背景情况、经济预测等等信息。DIALOG于1972年正式开始提供商用联机服务,是世界上最大、历史最悠久的联机检索系统,已有30多年的全球联机检索服务历史。
收起全文
精华内容
参与话题
问答
  • Dialog的详细使用

    万次阅读 2018-05-29 16:18:06
    1、自己虽然一直使用过dialog,但是一直都是复制、粘贴;不清楚dialog的具体用途,这次趁着有时间,总结一下具体用法。 当在自定义dialog时,其实原理时一样的,通过代码写一个view,然后将new的dialog添加上view...

    1、自己虽然一直使用过dialog,但是一直都是复制、粘贴;不清楚dialog的具体用途,这次趁着有时间,总结一下具体用法。

    当在自定义dialog时,其实原理时一样的,通过代码写一个view,然后将new的dialog添加上view即可。

    也可以直接写一个类继承dialog。然后调用即可。

     

    代码下载地址:https://download.csdn.net/download/f552126367/10445244

    dialog可以直接new一个alertDialog,然后进行附上你要添加的属性,具体包括:

    包括普通Dialog
    列表Dialog
    单选Dialog
    多选Dialog
    等待Dialog
    进度条Dialog
    编辑Dialog
    自定义Dialog

    代码如下:

     

    public class MainDialogActivity extends BaseActivity{
        private int yourChoice;
        private ArrayList<Integer> yourChoices = new ArrayList<>();
        private ProgressWheel pw;
        private Dialog dialog;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main_dialog);
            ButterKnife.bind(this);
        }
        /* @setIcon 设置对话框图标
         * @setTitle 设置对话框标题
         * @setMessage 设置对话框消息提示
         * setXXX方法返回Dialog对象,因此可以链式设置属性
         * */
        @OnClick(R.id.dialog_1)
        public void Dialog1(){
            AlertDialog.Builder normalDialog = new AlertDialog.Builder(MainDialogActivity.this);
            normalDialog.setIcon(R.mipmap.ic_launcher);
            normalDialog.setTitle("我是一个普通Dialog");
            normalDialog.setMessage("你要点击哪一个按钮呢?");
            normalDialog.setPositiveButton("确定",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            showToastShort("点击了确定");
                        }
                    });
            normalDialog.setNegativeButton("关闭",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            showToastShort("点击了关闭");
                        }
                    });
            // 显示
            normalDialog.show();
        }
    
        /*列表Dialog*/
        @OnClick(R.id.dialog_2)
        public void Dialog2(){
            final String[] items = { "我是1","我是2","我是3","我是4" };
            AlertDialog.Builder listDialog =
                    new AlertDialog.Builder(MainDialogActivity.this);
            listDialog.setTitle("我是一个列表Dialog");
            listDialog.setItems(items, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    showToastShort("你点击了" + items[which]);
                }
            });
            listDialog.show();
        }
        /*单选Dialog*/
        @OnClick(R.id.dialog_3)
        public void Dialog3(){
            final String[] items = { "我是1","我是2","我是3","我是4" };
            yourChoice = -1;
            AlertDialog.Builder singleChoiceDialog =
                    new AlertDialog.Builder(MainDialogActivity.this);
            singleChoiceDialog.setTitle("我是一个单选Dialog");
            // 第二个参数是默认选项,此处设置为0
            singleChoiceDialog.setSingleChoiceItems(items, 0,
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            yourChoice = which;
                        }
                    });
            singleChoiceDialog.setPositiveButton("确定",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            if (yourChoice != -1) {
                                showToastShort("你选择了" + items[yourChoice]);
                            }
                        }
                    });
            singleChoiceDialog.show();
        }
        /*多选Dialog*/
        @OnClick(R.id.dialog_4)
        public void Dialog4(){
            final String[] items = { "我是1","我是2","我是3","我是4" };
            // 设置默认选中的选项,全为false默认均未选中
            final boolean initChoiceSets[]={false,false,false,false};
            yourChoices.clear();
            AlertDialog.Builder multiChoiceDialog =
                    new AlertDialog.Builder(MainDialogActivity.this);
            multiChoiceDialog.setTitle("我是一个多选Dialog");
            multiChoiceDialog.setMultiChoiceItems(items, initChoiceSets,
                    new DialogInterface.OnMultiChoiceClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which,
                                            boolean isChecked) {
                            if (isChecked) {
                                yourChoices.add(which);
                            } else {
                                yourChoices.remove(which);
                            }
                        }
                    });
            multiChoiceDialog.setPositiveButton("确定",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            int size = yourChoices.size();
                            String str = "";
                            for (int i = 0; i < size; i++) {
                                str += items[yourChoices.get(i)] + " ";
                            }
                            showToastShort("你选中了" + str);
                        }
                    });
            multiChoiceDialog.show();
        }
    
        /*等待Dialog*/
        @OnClick(R.id.dialog_5)
        public void Dialog5(){
            ProgressDialog waitingDialog= new ProgressDialog(MainDialogActivity.this);
            waitingDialog.setTitle("我是一个等待Dialog");
            waitingDialog.setMessage("等待中...");
            waitingDialog.setIndeterminate(true);
            waitingDialog.setCancelable(false);
            waitingDialog.show();
        }
    
        /*进度条dailog
        @setProgress 设置初始进度
        * @setProgressStyle 设置样式(水平进度条)
        * @setMax 设置进度最大值
        */
        @OnClick(R.id.dialog_6)
        public void Dialog6(){
            final int MAX_PROGRESS = 100;
            final ProgressDialog progressDialog =
                    new ProgressDialog(MainDialogActivity.this);
            progressDialog.setProgress(0);
            progressDialog.setTitle("我是一个进度条Dialog");
            progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            progressDialog.setMax(MAX_PROGRESS);
            progressDialog.show();
        /* 模拟进度增加的过程,新开一个线程,每个100ms,进度增加1*/
            new Thread(new Runnable() {
                @Override
                public void run() {
                    int progress= 0;
                    while (progress < MAX_PROGRESS){
                        try {
                            Thread.sleep(100);
                            progress++;
                            progressDialog.setProgress(progress);
                        } catch (InterruptedException e){
                            e.printStackTrace();
                        }
                    }
                    // 进度达到最大值后,窗口消失
                    progressDialog.cancel();
                }
            }).start();
        }
        /*编辑dialog*/
        @OnClick(R.id.dialog_7)
        public void Dialog7(){
            final EditText editText = new EditText(MainDialogActivity.this);
            AlertDialog.Builder inputDialog =new AlertDialog.Builder(MainDialogActivity.this);
            inputDialog.setTitle("我是一个输入Dialog").setView(editText);
            inputDialog.setPositiveButton("确定",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            showToastShort(editText.getText().toString());
                        }
                    }).show();
        }
        /*自定义dialog*/
        @OnClick(R.id.dialog_8)
        public void Dialog8(){
            
    LayoutInflater inflater = LayoutInflater.from(this);
    View layout = inflater.inflate(R.layout.progress_dialog, null);
    dialog = new Dialog(this, R.style.confirm_dialog);
    dialog.setContentView(layout);
    dialog.show();
    pw = layout.findViewById(R.id.progressBar_dialog);
    pw.resetCount();
    pw.setText("JD");
    pw.spin();
    dialog.setCanceledOnTouchOutside(false);

    }

    展开全文
  • Dialog 使用详解

    2019-09-17 21:56:13
    极力推荐文章:欢迎收藏Android 干货分享本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:简单对话框多选按钮对话框单选按钮...
        

    640?wx_fmt=gif

    640?wx_fmt=gif

    640?wx_fmt=other

    极力推荐文章:欢迎收藏Android 干货分享 

    640?wx_fmt=other

    本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

    1. 简单对话框

    2. 多选按钮对话框

    3. 单选按钮对话框

    4. 列表对话框

    5. 水平进度条对话框

    6. 圆形进度条对话框

    7. 自定义图文对话框

    8. 自定义输入对话框

    9. 自定义样式对话框

    10. 自定义Loading样式对话框

    11. 继承 DialogFragment 实现对话框

    12. Activity形式的 对话框

    13. 倒计时 30s Dialog实现

    Dialog 是Android 常用控件之一,主要以弹出框的形式与用户进行交互。对话框是提示用户作出决定或输入额外信息的小窗口。 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件。

    Dialog 简介

    Dialog 继承关系如下:

    java.lang.Object
       ↳    android.app.Dialog
    

    Dialog 基本样式解析

    640?wx_fmt=jpeg

    Dialog 基本样式

    1.标题

    这是可选项,只应在内容区域被详细消息、列表或自定义布局占据时使用。 如需陈述的是一条简单消息或问题(如图 上图中的对话框),则不需要标题。

    2.内容区域

    它可以显示消息、列表或其他自定义布局。

    3.操作按钮

    对话框中的操作按钮不应超过三个。

    1. 简单对话框

    • 实现效果:

    640?wx_fmt=other

    简单对话框

    • 实现代码如下:

        /**
         * 简单对话框
         */
        public void SimpleDialog(View view) {
    
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setIcon(R.drawable.gril).setTitle("简单对话框")
                    .setMessage("设置Dialog 显示的内容")
                    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
    
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
    
                            Toast.makeText(DiaLogMethods.this, "点击了确定按钮",
                                    Toast.LENGTH_SHORT).show();
                        }
                    }).setNegativeButton("Cancle", null).create().show();
    
        }
    

    2. 多选按钮对话框

    • 实现效果:

    640?wx_fmt=jpeg

    多选按钮对话框

    • 实现代码:

    /**
         * 多选按钮对话框
         * */
        public void MultiChoiceDialog(View view) {
            final String font[] = { "小号字体", "中号字体", "大号字体", "超大号字体" };
            final boolean[] MultiChoice = new boolean[] { false, true, false, false };
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("多选对话框")
                    .setIcon(R.drawable.ic_launcher)
                    .setMultiChoiceItems(font, MultiChoice,
                            new DialogInterface.OnMultiChoiceClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                        int which, boolean isChecked) {
                                    MultiChoice[which] = isChecked;
                                    String choiceString = "";
                                    for (int i = 0; i < MultiChoice.length; i++) {
                                        if (MultiChoice[i]) {
                                            choiceString = choiceString + font[i]
                                                    + "  ";
                                        }
                                    }
    
                                    if (choiceString.equals("")
                                            || choiceString.length() == 0) {
    
                                        // 都不选的处理方法
    
                                        Toast.makeText(DiaLogMethods.this,
                                                "请选择一个内容", Toast.LENGTH_SHORT)
                                                .show();
                                    } else {
    
                                        Toast.makeText(DiaLogMethods.this,
                                                "选择的字体为" + choiceString,
                                                Toast.LENGTH_SHORT).show();
    
                                    }
    
                                }
                            }).setPositiveButton("OK", null)
                    .setNegativeButton("Cancle", null).create().show();
    
        }
    

    3.单选按钮对话框

    • 实现效果:

    640?wx_fmt=other

    单选按钮对话框

    • 实现代码如下:

    
        /**
         * 单选按钮对话框实现
         **/
        public void SingleChoiceDialog(View view) {
            final String font[] = { "小号字体", "中号字体", "大号字体", "超大号字体" };
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("单选对话框")
                    .setIcon(R.drawable.ic_launcher)
                    .setSingleChoiceItems(font, 0,
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                        int which) {
                                    Toast.makeText(DiaLogMethods.this,
                                            "选择的字体为:" + font[which],
                                            Toast.LENGTH_SHORT).show();
                                    dialog.dismiss();
                                }
                            }).setPositiveButton("OK", null)
                    .setNegativeButton("Cancle", null).create().show();
    
        }
    

    4. 列表对话框

    • 实现效果如下:

    640?wx_fmt=jpeg

    列表对话框

    • 实现代码如下:

    /**
         * 列表对话框实现
         **/
        public void ListItemDialog(View view) {
            final String font[] = { "小号字体", "中号字体", "大号字体", "超大号字体" };
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setIcon(R.drawable.ic_launcher)
                    .setTitle(" 列表对话框")
                    .setItems(font, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(DiaLogMethods.this,
                                    "选择内容是:" + font[which], Toast.LENGTH_SHORT)
                                    .show();
                        }
                    }).setNegativeButton("Cancle", null)
                    .setPositiveButton("OK", null).create().show();
    
        }
    

    5. 水平进度条对话框

    • 实现效果如下:

    640?wx_fmt=other

    水平进度条对话框

    • 实现代码如下:

    
        /**
         * 水平进度条对话框实现
         **/
        @SuppressWarnings("deprecation")
        public void HorProgressDialog(View view) {
    
            final ProgressDialog progressDialog = new ProgressDialog(
                    DiaLogMethods.this);
            progressDialog.setTitle("进度对话框");
            progressDialog.setIcon(R.drawable.ic_launcher);
            progressDialog.setMessage("加载中...");
            // 水平进度条显示
            progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            // 圆形进度条显示
            // progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressDialog.setCancelable(true);
            progressDialog.setButton("Cancle",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(DiaLogMethods.this, "取消进度条对话框",
                                    Toast.LENGTH_LONG).show();
                            progressDialog.cancel();
                            count = 0;
                        }
                    });
            progressDialog.setMax(100);
            progressDialog.show();
            count = 0;
            new Thread() {
                @Override
                public void run() {
    
                    while (count <= 100) {
                        progressDialog.setProgress(count++);
                        try {
                            Thread.sleep(50);
                        } catch (InterruptedException e) {
                            progressDialog.dismiss();
                            e.printStackTrace();
                        }
    
                    }
                    progressDialog.dismiss();
                }
            }.start();
    
        }
    

    6. 圆形进度条对话框

    • 实现效果如下:

    640?wx_fmt=jpeg

    圆形进度条对话框

    • 实现代码如下:

    /**
         * 圆形进度条显示
         **/
        @SuppressWarnings("deprecation")
        public void SpinerProgressDialog(View view) {
    
            final ProgressDialog progressDialog = new ProgressDialog(
                    DiaLogMethods.this);
            progressDialog.setTitle("进度对话框");
            progressDialog.setIcon(R.drawable.ic_launcher);
            progressDialog.setMessage("加载中...");
            // 水平进度条显示
            // progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            // 圆形进度条显示
            progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressDialog.setCancelable(true);
            progressDialog.setButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(DiaLogMethods.this, "取消进度条对话框",
                            Toast.LENGTH_LONG).show();
                    progressDialog.cancel();
                    count = 0;
                }
            });
            progressDialog.setMax(100);
            progressDialog.show();
            count = 0;
            new Thread() {
                @Override
                public void run() {
    
                    while (count <= 100) {
                        progressDialog.setProgress(count++);
                        try {
                            Thread.sleep(50);
                        } catch (InterruptedException e) {
                            progressDialog.dismiss();
                            e.printStackTrace();
                        }
    
                    }
                    progressDialog.dismiss();
                }
            }.start();
    
        }
    
    注意 :

    水平进度条,圆形进度条的区别 如下:

            // 水平进度条显示
            progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            // 圆形进度条显示
            progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    

    7. 自定义图文对话框

    • 实现效果如下:

    640?wx_fmt=other

    自定义图文对话框

    • 实现代码如下:

        /**
         * 自定义图文对话框实现
         **/
        public void CustomImgTvDialog(View view) {
    
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
    
            View contextview = getLayoutInflater().inflate(
                    R.layout.dialog_custom_img_tv, null);
            LinearLayout linearLayout1 = (LinearLayout) findViewById(R.id.linlout1);
            LinearLayout linearLayout2 = (LinearLayout) findViewById(R.id.linlout2);
            ImageView img1 = (ImageView) contextview.findViewById(R.id.img1);
            TextView tv1 = (TextView) contextview.findViewById(R.id.tv1);
            // 这里可以处理一些点击事件
    
            builder.setIcon(R.drawable.gril).setTitle("自定义对话框")
                    .setView(contextview)
                    // 或者在这里处理一些事件
                    .setPositiveButton("OK", null)
                    .setNegativeButton("Cancle", null).create().show();
        }
    
    注意:
    1. 自定义图文对话框的布局如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <LinearLayout
            android:id="@+id/linlout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:orientation="horizontal" >
    
            <ImageView
                android:id="@+id/img1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher" />
    
            <TextView
                android:id="@+id/tv1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:text="this is a test data" />
        </LinearLayout>
    
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginBottom="2dp"
            android:layout_marginTop="2dp"
            android:background="@android:color/darker_gray" />
    
        <LinearLayout
            android:id="@+id/linlout2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:orientation="horizontal" >
    
            <ImageView
                android:id="@+id/img2"
                android:layout_width="wrap_content"
                android:layout_height="45dp"
                android:src="@drawable/gril" />
    
            <TextView
                android:id="@+id/tv2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:text="this is a test data" />
        </LinearLayout>
    
    </LinearLayout>
    

    8. 自定义输入对话框

    • 实现效果如下:

    640?wx_fmt=other

    自定义输入对话框

    • 实现代码如下:

        /**
         * 自定义EditText对话框
         **/
        public void CustomEditTextDialog(View view) {
    
            AlertDialog.Builder builder = new AlertDialog.Builder(this,
                    android.R.style.Theme_Material_Light_Dialog_Alert);
            View Tittleview = getLayoutInflater().inflate(
                    R.layout.dialog_custom_layout, null);
            ImageView img2 = (ImageView) Tittleview.findViewById(R.id.img2);
            TextView textView = (TextView) Tittleview.findViewById(R.id.tv2);
    
            textView.setText("自定义对话框");
            img2.setImageResource(R.drawable.ic_launcher);
            // 自定义tittle
            builder.setCustomTitle(Tittleview);
    
            View contentView = getLayoutInflater().inflate(
                    R.layout.dialog_custom_et, null);
            EditText username = (EditText) contentView.findViewById(R.id.username);
            EditText passworld = (EditText) contentView
                    .findViewById(R.id.passworld);
    
            builder.setView(contentView);
            builder.setPositiveButton("OK", null).setNegativeButton("Cancle", null)
                    .create().show();
    
        }
    

    自定义对话框 布局如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
    
        <ImageView
            android:id="@+id/img2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher" />
    
        <TextView
            android:id="@+id/tv2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:text="自定义Dialog"
            android:textColor="@android:color/black"
            android:textSize="25sp" />
    </LinearLayout>
    

    自定义 EditText内容布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <EditText
            android:id="@+id/username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="2dp"
            android:background="@drawable/custom_edittext_background"
            android:hint="please input username"
            android:padding="5dp"
            android:textSize="20sp" />
    
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginBottom="2dp"
            android:layout_marginTop="2dp"
            android:background="@android:color/darker_gray" />
    
        <EditText
            android:id="@+id/passworld"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="2dp"
            android:background="@drawable/custom_edittext_background"
            android:hint="please input password"
            android:padding="5dp"
            android:textSize="20sp" />
    
    </LinearLayout>
    

    9. 自定义样式对话框

    • 实现效果如下:

    640?wx_fmt=other

    自定义样式对话框

    • 实现代码如下:

        /**
         * 自定义样式对话框
         * **/
        public void CustomStyleDialog(View v) {
    
            // 对话框和activity绑定,所以必须传递activity对象
            Builder builder = new AlertDialog.Builder(this,
                    android.R.style.Theme_Material_Light_Dialog_Alert);
            // 获取对话框对象
            final AlertDialog dialog = builder.create();
            // 修改对话框的样式(布局结构)
            View view = View.inflate(this, R.layout.dialog_custom_style, null);
    
            // 因为在2.3.3版本上,系统默认设置内间距,所以需要去除此内间距
            // dialog.setView(view);
            dialog.setView(view, 0, 0, 0, 0);
    
            // 找到对话框中所有控件
            Button bt_submit = (Button) view.findViewById(R.id.bt_submit);
            Button bt_cancel = (Button) view.findViewById(R.id.bt_cancel);
    
            final EditText et_set_psd = (EditText) view
                    .findViewById(R.id.et_set_psd);
            final EditText et_confirm_psd = (EditText) view
                    .findViewById(R.id.et_confirm_psd);
    
            bt_submit.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 如果用户没有输入两次密码,告知用户输入密码
                    String psd = et_set_psd.getText().toString().trim();
                    String confirmPsd = et_confirm_psd.getText().toString().trim();
                    if (!TextUtils.isEmpty(psd) && !TextUtils.isEmpty(confirmPsd)) {
                        if (psd.equals(confirmPsd)) {
                            // 当前的对话框隐藏
                            dialog.dismiss();
    
                        } else {
                            Toast.makeText(getApplicationContext(), "两次输入密码不一致",
                                    Toast.LENGTH_SHORT).show();
                        }
                    } else {
                        Toast.makeText(getApplicationContext(), "密码不能为空",
                                Toast.LENGTH_SHORT).show();
                    }
                }
            });
    
            bt_cancel.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                }
            });
    
            // 展示对话框
            dialog.show();
    
        }
    

    1. 自定义样式dialog_custom_style布局如下:

    dialog_custom_style 布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#fff"
        android:orientation="vertical" >
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_blue_light"
            android:gravity="center"
            android:textColor="@android:color/white"
            android:layout_marginBottom="10dp"
            android:padding="10dp"
            android:text="设置密码"
            android:textSize="20sp" />
    
        <EditText
            android:id="@+id/et_set_psd"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="2dp"
            android:background="@drawable/custom_edittext_background"
            android:hint="输入密码"
            android:inputType="textPassword"
            android:padding="5dp"
            android:textSize="22sp" />
    
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginBottom="2dp"
            android:layout_marginTop="2dp"
            android:background="@drawable/tittle_bg" />
    
        <EditText
            android:id="@+id/et_confirm_psd"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="2dp"
            android:background="@drawable/custom_edittext_background"
            android:hint="确认密码"
            android:inputType="textPassword"
            android:padding="5dp"
            android:textSize="22sp" />
    
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginTop="5dp"
            android:background="@drawable/tittle_bg" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="3dp"
            android:layout_marginTop="3dp"
            android:orientation="horizontal" >
    
            <Button
                android:id="@+id/bt_submit"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/custom_btn_green_selector"
                android:text="确认" >
            </Button>
    
            <Button
                android:id="@+id/bt_cancel"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/custom_btn_green_selector"
                android:text="取消" >
            </Button>
        </LinearLayout>
    
    </LinearLayout>
    

    2. EditText 的背景是画的edittext_background 圆角矩形

    edittext_background 实现

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    
        <!-- 圆角-->
        <corners android:radius="5dp" />
        <!--描边-->
        <stroke
            android:width="1dp"
            android:color="@android:color/holo_blue_light" />
    
    </shape>
    

    android.R.style.Theme_Material_Light_Dialog_Alert 是用来定义Dialog 样式。

            Builder builder = new AlertDialog.Builder(this,
                    android.R.style.Theme_Material_Light_Dialog_Alert);
    

    10. 自定义Loading样式对话框

    • 实现效果如下:

    640?wx_fmt=other

    自定义Loading样式对话框

    • 实现代码如下:

        /**
         * 自定义Loading样式对话框
         ***/
        public void CustomStyleProgressDialog(View view) {
    
            LayoutInflater inflater = LayoutInflater.from(this);
            View v = inflater.inflate(R.layout.dialog_custom_style_progress, null);
            LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);
    
            ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);
            TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);
    
            Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this,
                    R.anim.loading_animation);
    
            spaceshipImage.startAnimation(hyperspaceJumpAnimation);
    
            Dialog loadingDialog = new Dialog(this, R.style.loading_dialog);
    
            // loadingDialog.setCancelable(true);//“返回键”取消 不可以用
            loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.MATCH_PARENT));
            loadingDialog.show();
        }
    

    1. 自定义Dialog Sstyle 如下:

    
        <!-- 自定义loading dialog样式 -->
        <style name="loading_dialog" parent="android:style/Theme.Dialog">
            <item name="android:windowFrame">@null</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowBackground">@drawable/loading_bg</item>
            <item name="android:windowIsFloating">true</item>
            <item name="android:windowContentOverlay">@null</item>
        </style>
    
    

    2. 自定义Dialog 样式动画如下:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:shareInterpolator="false" >
    
        <!-- 自定义旋转的动画 -->
        <rotate
            android:duration="800"
            android:fromDegrees="0"
            android:interpolator="@android:anim/linear_interpolator"
            android:pivotX="50%"
            android:pivotY="50%"
            android:repeatCount="-1"
            android:repeatMode="restart"
            android:startOffset="-1"
            android:toDegrees="+360" />
    
    </set>
    

    3. 自定义样式的布局如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/dialog_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/loading_bg"
        android:gravity="center"
        android:orientation="vertical" >
    
        <ImageView
            android:id="@+id/img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="20dp"
            android:gravity="center_horizontal"
            android:src="@drawable/loading" />
    
        <TextView
            android:id="@+id/tipTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginBottom="20dp"
            android:layout_marginTop="10dp"
            android:gravity="center_horizontal"
            android:text="loading..."
            android:textColor="@android:color/holo_green_light"
            android:textSize="20sp" />
    
    </LinearLayout>
    

    11. 继承 DialogFragment 实现对话框

    • 实现效果如下:

    640?wx_fmt=jpeg

    继承 DialogFragment 实现对话框

    1.自定义继承DialogFragment 类

    • 实现代码如下:

    自定义继承DialogFragment 类

    public class CustomDialogFragment extends DialogFragment {
    
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            // Use the Builder class for convenient dialog construction
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            builder.setMessage("通过 DialogFragment 创建对话框")
                    .setTitle("DialogFragment")
                    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            Toast.makeText(getActivity(), "点击 OK",
                                    Toast.LENGTH_SHORT).show();
                        }
                    })
                    .setNegativeButton("cancle",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int id) {
                                    // User cancelled the dialog
                                }
                            });
            // Create the AlertDialog object and return it
            return builder.create();
        }
    }
    

    2. Activity 调用显示Dialog方法

        /**
         * 继承 DialogFragment 实现对话框
         * **/
        public void CustomFragmentDialog(View view) {
    
            CustomDialogFragment customDialogFragment = new CustomDialogFragment();
            customDialogFragment.show(getFragmentManager(), "fragment");
        }
    

    12. Activity形式的 对话框

    只需创建一个Activity,并在<activity>清单文件元素中将其主题设置为 Theme.Holo.Dialog样式即可

    <activity android:theme="@android:style/Theme.Holo.Dialog" >
    

    13.倒计时 30s Dialog实现

    实现效果如下:

    640?wx_fmt=jpeg

    倒计时关机实现

    实现代码如下:

        private TextView mShutDownTextView;
        private Handler mOffHandler;
        private Timer mShutdownTime;
        private Dialog mDialog;
    
        public void CountDownDialog(View view) {
    
            CreateShutDownDialog();
    
        }
    
        private Handler mNumHandler = new Handler() {
            public void handleMessage(android.os.Message msg) {
                if (msg.what > 0) {
    
                    // //动态显示倒计时
                    mShutDownTextView
                            .setText("Warning! Battery temperature°С, phone will shutdown in "
                                    + msg.what + "s");
    
                } else {
                    if (mDialog != null) {
                        mDialog.dismiss();
                    }
                    mShutdownTime.cancel();
                    Toast.makeText(getApplicationContext(), "倒计时结束", 0).show();
    
                }
            }
    
        };
    
        private void CreateShutDownDialog() {
    
            mShutDownTextView = new TextView(this);
            mShutDownTextView.setLineSpacing(1.2f, 1.2f);
            mShutDownTextView.setText("");
            mShutDownTextView.setPadding(20, 20, 20, 20);
            mDialog = new AlertDialog.Builder(this).setTitle("Safety Warning")
                    .setCancelable(false).setView(mShutDownTextView)
                    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            mShutdownTime.cancel();
    
                        }
                    }).create();
            mDialog.show();
            mDialog.setCanceledOnTouchOutside(false);
            mShutdownTime = new Timer(true);
            TimerTask timeTask = new TimerTask() {
                int countTime = 30;
    
                public void run() {
                    if (countTime > 0) {
                        countTime--;
                    }
                    Message msg = new Message();
                    msg.what = countTime;
                    mNumHandler.sendMessage(msg);
                }
            };
            mShutdownTime.schedule(timeTask, 1000, 1000);
        }

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    长按识别二维码,领福利

    至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

    如有侵权,请联系小编,小编对此深感抱歉,届时小编会删除文章,立即停止侵权行为,请您多多包涵。

    640?wx_fmt=gif

    640?wx_fmt=png

    展开全文
  • 一个简单的自定义Dialog

    千次阅读 2016-09-21 15:28:08
    项目中会有各种各样的dialog弹窗,每个都拿布局去写很烦,以前写过一个多配置的dialog框架,没带到新公司,没事的时候写了一个简洁版的。 支持有无标题,支持替换内容View。支持只显示确定按钮,支持修改按钮文字...

    尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/52608636, 本文出自:【gengqiquan的博客】

    项目中会有各种各样的dialog弹窗,每个都拿布局去写很烦,以前写过一个多配置的dialog框架,没带到新公司,没事的时候写了一个简洁版的。
    支持有无标题,支持替换内容View。支持只显示确定按钮,支持修改按钮文字颜色。支持普通的点击事件,支持背景调暗,总之是一些基本的dialog功能

    随便贴两张图

    带标题的

    这里写图片描述

    调用代码

     new Builder(mContext)
                        .title("300速贷")
                        .message("联系车300,业务员立即上门办理贷款业务")
                        .SureText("拨号")
                        .sureTextColor(R.color.blue)
                        .setSureOnClickListener((view) -> {
                            phone(mBean.getPhone());
                        })
                        .builder()
                        .show();

    不带标题

    这里写图片描述
    调用代码

     new Builder(mContext)
                        .noTitle()
                        .message("是否删除此条订阅条件")
                        .SureText("是")
                        .setSureOnClickListener((view) -> {
                            delete(item.getId());
                        })
                        .builder()
                        .show();

    代码不怎么多,虽然简单,但还是可配置的,builder模式,具体的功能方法看builder类

    dialog构建类类

    package com.sunshine.dialglibrary;
    
    import android.app.ActionBar;
    import android.app.Dialog;
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    
    /**
     * Created by 耿 on 2016/9/11.
     */
    public class Builder {
        private Context context;
        private View mLayout;
        private TextView sureButton;
        private TextView cancleButton;
        private boolean mCancelable = false;
        private View.OnClickListener sureClickListener,
                cancelClickListener;
        Dialog dialog;
        public Builder(Context context) {
            this.context = context;
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            mLayout = inflater.inflate(R.layout.base_dialog_layout, null);
    
    
        }
    //能否返回键取消
        public Builder setCancelable(Boolean boolean1) {
            this.mCancelable = boolean1;
            return this;
        }
    
        public Builder title(int title) {
            ((TextView) mLayout.findViewById(R.id.title)).setText(title);
            return this;
        }
    
        public Builder title(String title) {
            ((TextView) mLayout.findViewById(R.id.title)).setText(title);
            return this;
        }
    
        public Builder titleColor(int color) {
            ((TextView) mLayout.findViewById(R.id.title)).setTextColor(context.getResources().getColor(color));
    
            return this;
        }
    
        public Builder titleBackColor(int color) {
            mLayout.findViewById(R.id.title_back).setBackgroundColor(context.getResources().getColor(color));
            return this;
        }
    
        public Builder setSureOnClickListener(View.OnClickListener listener) {
            this.sureClickListener = listener;
            return this;
        }
    
        public Builder message(String message) {
            ((TextView) mLayout.findViewById(R.id.message)).setText(message);
            return this;
        }
    
        public Builder message(int message) {
            ((TextView) mLayout.findViewById(R.id.message)).setText(message);
            return this;
        }
       public Builder sureTextColor(int color) {
            ((TextView) mLayout.findViewById(R.id.sure)).setTextColor(context.getResources().getColor(color));
            return this;
        }
    
        public Builder cancelTextColor(int color) {
            ((TextView) mLayout.findViewById(R.id.cancel)).setTextColor(context.getResources().getColor(color));
            return this;
        }
    
    //切换内容view
        public Builder setView(View v) {
            ((LinearLayout) mLayout.findViewById(R.id.content)).removeAllViews();
            ((LinearLayout) mLayout.findViewById(R.id.content)).addView(v);
            return this;
        }
    //确定按钮文本
        public Builder SureText(String str) {
            ((TextView) mLayout.findViewById(R.id.sure)).setText(str);
            return this;
        }
    
        public Builder setView(View v, LinearLayout.LayoutParams params) {
            ((LinearLayout) mLayout.findViewById(R.id.content)).removeAllViews();
            ((LinearLayout) mLayout.findViewById(R.id.content)).addView(v, params);
            return this;
        }
    
        public Builder showCancelButton(boolean isShow) {
            if (!isShow)
                mLayout.findViewById(R.id.cancel).setVisibility(View.GONE);
            return this;
        }
    
        public Builder noTitle() {
            mLayout.findViewById(R.id.title_back).setVisibility(View.GONE);
            return this;
        }
    
        public Builder justMessageDialog() {
            sureClickListener = new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                }
            };
            return this;
        }
    
        public Dialog builder() {
            dialog = new Dialog(context, R.style.base_dialog);
            dialog.setCancelable(mCancelable);
            dialog.addContentView(mLayout, new ActionBar.LayoutParams(
                    ActionBar.LayoutParams.FILL_PARENT, ActionBar.LayoutParams.WRAP_CONTENT));
            if (sureClickListener != null) {
                mLayout.findViewById(R.id.sure).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        sureClickListener.onClick(v);
                        dialog.dismiss();
                    }
                });
            }
            mLayout.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (cancelClickListener != null) {
                        cancelClickListener.onClick(v);
                    }
                    dialog.dismiss();
                }
            });
    
            return dialog;
        }
    }
    

    布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/dialoglayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        android:orientation="vertical">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/title_back"
            android:gravity="center"
            android:minHeight="45dip">
    
            <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:gravity="center"
                android:maxLines="2"
                android:ellipsize="end"
                android:layout_marginRight="15dp"
                android:text="标题"
                android:textColor="@color/gray333333"
                android:textSize="18sp" />
        </LinearLayout>
    
        <LinearLayout
            android:id="@+id/content"
            android:layout_width="match_parent"
            android:gravity="center_horizontal"
            android:layout_height="wrap_content"
            android:minHeight="80dip">
    
            <TextView
                android:id="@+id/message"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="15dip"
                android:text="正文"
                android:textColor="@color/gray333333"
                android:textSize="18sp" />
        </LinearLayout>
    
        <View
            android:id="@+id/line2"
            android:layout_width="fill_parent"
            android:layout_height="0.5dip"
            android:background="@color/line" />
    
        <LinearLayout
    
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingRight="8.0dip">
    
            <TextView
                android:id="@+id/cancel"
                android:layout_width="0dip"
                android:layout_height="40dp"
                android:layout_marginLeft="8.0dip"
                android:layout_weight="1.0"
                android:gravity="center"
                android:paddingBottom="5dip"
                android:paddingTop="5dip"
                android:text="取消"
                android:textColor="@color/gray333333"
                android:textSize="16sp" />
    
            <View
                android:layout_width="0.5dp"
                android:layout_height="match_parent"
                android:background="@color/line" />
    
            <TextView
                android:id="@+id/sure"
                android:layout_width="0dip"
                android:layout_height="40dp"
                android:layout_marginLeft="8.0dip"
                android:layout_weight="1.0"
                android:gravity="center"
                android:paddingBottom="5dip"
                android:paddingTop="5dip"
                android:text="确认"
                android:textColor="@color/yellowff6600"
                android:textSize="16sp" />
    
    
        </LinearLayout>
    
    </LinearLayout>

    样式

      -<style parent="@android:style/Theme.Dialog" name="base_dialog">
        <item name="android:windowFrame">@null</item>
        <!-- 边框 -->
        <item name="android:windowIsFloating">true</item>
        <!-- 是否浮现在activity之上 -->
        <item name="android:windowIsTranslucent">true</item>
        <!-- 半透明 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 无标题 -->
        <item name="android:windowBackground">@android:color/black</item>
        <!-- 背景透明 -->
        <item name="android:backgroundDimEnabled">true</item>
        <!-- 模糊 -->
    </style>

    只是个基础的架子,之所以没有像以前那样写一个完整的框架,是觉得不同的项目要求不一样,为一个dialog写太多、太全只是白白占用方法数而已,有什么特殊需求的方法大家可以自己加

    我建了一个QQ群(群号:121606151),用于大家讨论交流Android技术问题,有兴趣的可以加下,大家一起进步。

    展开全文
  • jquery dialog 简单学习

    千次阅读 2018-07-16 09:17:38
    转自:http://www.cnblogs.com/bestfc/archive/2009/06/08/1498742.html 转自:... 1 属性 ...1.11 autoOpen ,这个属性为true的时候dialog被调用的时候自动打开dialog窗口。当属性为false的时候,一

    转自:http://www.cnblogs.com/bestfc/archive/2009/06/08/1498742.html

    转自:http://www.2cto.com/kf/201303/197843.html


    1 属性

    1.11 autoOpen ,这个属性为true的时候dialog被调用的时候自动打开dialog窗口。当属性为false的时候,一开始隐藏窗口,知道.dialog("open")的时候才弹出dialog窗口。默认为:true。

    1.12 初始化例:请注意,$('.selector')是dialog 的类名,在本例中.selector=#dialoag,以后不再说明。

    $('.selector').dialog({ autoOpen: false });

    1.13 初始化后,得到和设置此属性例:

    //获得

    var autoOpen = $('.selector').dialog('option', 'autoOpen');

    //设置

    $('.selector').dialog('option', 'autoOpen', false);

     

    1.21 bgiframe 默认为false ,When true, the bgiframe plugin will be used, to fix the issue in IE6 where select boxes show on top of other elements, regardless of zIndex. Requires including the bgiframe plugin. Future versions may not require a separate plugin.

    在IE6下,让后面那个灰屏盖住select。

    1.22 初始化例:

    $('.selector').dialog({ bgiframe: true });

    1.23 初始化后,得到和设置:

    //获取

    var bgiframe = $('.selector').dialog('option', 'bgiframe');

    //设置

    $('.selector').dialog('option', 'bgiframe', true);

     

    1.31 buttons 显示一个按钮,并写上按钮的文本,设置按钮点击函数。默认为{},没有按钮。

    最上面的例子中已经有buttons属性的用法,请注意。

    1.32 初始化例:

    $('.selector').dialog({ buttons: { "Ok": function() { $(this).dialog("close"); } } });

    1.33 初始化后,得到和设置:

    //获取

    var buttons = $('.selector').dialog('option', 'buttons');

    //设置

    $('.selector').dialog('option', 'buttons', { "Ok": function() { $(this).dialog("close"); } });

     

    1.41 closeOnEscape 为true的时候,点击键盘ESC键关闭dialog,默认为true;

    1.42 初始化例:

    $('.selector').dialog({ closeOnEscape: false });

    1.43 初始化后,得到和设置:

    //获取

    var closeOnEscape = $('.selector').dialog('option', 'closeOnEscape');

    //设置

    $('.selector').dialog('option', 'closeOnEscape', false);

     

    1.51 dialogClass 类型将被添加到dialog,默认为空

    1.52 初始化例:

    $('.selector').dialog({ dialogClass: 'alert' });

    1.53 初始化后,得到和设置:

    //获取

    var dialogClass = $('.selector').dialog('option', 'dialogClass');

    //设置

    $('.selector').dialog('option', 'dialogClass', 'alert');

     

    1.61 draggable、resizable : draggable是否可以使用标题头进行拖动,默认为true,可以拖动;resizable是否可以改变dialog的大小,默认为true,可以改变大小。

    1.62 初始化例:

    $('.selector').dialog({ draggable: false,resizable:false });

    1.63 初始化后,得到和设置:

    //获取

    var draggable = $('.selector').dialog('option', 'draggable');

    //设置

    $('.selector').dialog('option', 'draggable', false);

     

    1.71 width、height ,dialog的宽和高,默认为auto,自动。

    1.72 初始化例:

    $('.selector').dialog({ height: 530,width:200 });

    1.73 初始化后,得到和设置:请参考1.63

     

    1.81 maxWidth、maxHeight、minWidth、minHeight ,dialog可改变的最大宽度、最大高度、最小宽度、最小高度。maxWidth、maxHeight的默认为false,为不限。minWidth、minHeight的默认为150。要使用这些属性需要ui.resizable.js 的支持。

    1.82 初始化例:

    $('.selector').dialog({ maxHeight: 400,maxWidth:600,minHeight:300,minWidth:300 });

    1.83 初始化后,得到和设置:请参考1.63

     

    1.91 hide、show ,当dialog关闭和打开时候的效果。默认为null,无效果

    1.92 初始化例:最上面的实例中用到,请自己看吧。

    1.93 初始化后,得到和设置:请参考1.63

     

    1.101 modal,是否使用模式窗口,模式窗口打开后,页面其他元素将不能点击,直到关闭模式窗口。默认为false不是模式窗口。

    1.102 初始化例:$('.selector').dialog({ modal: true });

    1.103 初始化后,得到和设置:请参考1.63

     

    1.111 title,dialog的标题文字,默认为空。

    1.112 初始化例:见最上面的实例。1.113 初始化后,得到和设置:请参考1.63

     

    1.121 position ,dialog的显示位置:可以是'center', 'left', 'right', 'top', 'bottom',也可以是top和left的偏移量也可以是一个字符串数组例如['right','top']。

    1.122 初始化例:$('.selector').dialog({ position: ['top','right'] }); 1.123 初始化后,得到和设置:请参考1.63

     

    1.131 zIndex, dialog的zindex值,默认值为1000.

    1.132 初始化例:$('.selector').dialog({ zIndex: 3999 }); 1.133 初始化后,得到和设置:请参考1.63

     

    1.141 stack 默认值为true,当dialog获得焦点是,dialog将在最上面。

    1.142 初始化例:$('.selector').dialog({ stack: false }); 1.143 初始化后,得到和设置:请参考1.63

     

    2 事件 

    2.11 beforeclose 类型dialogbeforeclose , 当dialog尝试关闭的时候此事件将被触发,如果返回false,那么关闭将被阻止。

    2.12 初始化例:$('.selector').dialog({

       beforeclose: function(event, ui) { ... }

    });

    2.13 使用类型绑定此事件例:$('.selector').bind('dialogbeforeclose', function(event, ui) {

    ...

    });

     

    2.21 close 类型:dialogclose ,当dialog被关闭后触发此事件。

    2.22 初始化例:$('.selector').dialog({

       close: function(event, ui) { ... }

    });

    2.23 使用类型绑定此事件例:$('.selector').bind('dialogclose', function(event, ui) {

    ...

    });

     

    2.3 open 类型:dialogopen ,当dialog打开时触发。(篇幅有限,该省略的就省略了啊,初始化例和使用类型绑定事件可以向上参考。)

    2.4 focus 类型:dialogfocus ,当dialog获得焦点时触发。

    2.5 dragStart 类型:dragStart,当dialog拖动开始时触发。

    2.6 drag 类型:drag ,当dialog被拖动时触发。

    2.7 dragStop 类型:dragStop ,当dialog拖动完成时触发。

    2.8 resizeStart 类型:resizeStart ,当dialog开始改变窗体大小时触发。

    2.9 resize 类型:resize,当dialog被改变大小时触发。

    2.10 resizeStop 类型:resizeStop,当改变完大小时触发。

     

    3 方法

    3.1 destroy ,我喜欢这个哦,摧毁地球。。。 例:.dialog( 'destroy' ) 

    3.2 disable,dialog不可用,例:.dialog('disable');

    3.3 enable,dialog可用,例,如3.2

    3.4 close,open,关闭、打开dialog

    3.5 option ,设置和获取dialog属性,例如:.dialog( 'option' , optionName , [value] ) ,如果没有value,将是获取。

    3.6 isOpen ,如果dialog打开则返回true,例如:.dialog('isOpen')

    3.7 moveToTop ,将dialog移到最上层,例如:.dialog( 'moveToTop' )


    播放器按钮:

    [html] view plain copy
    1. <!doctype html>   
    2.   
    3. <html lang="en">   
    4.   
    5. <head>   
    6.   
    7.     <meta charset="utf-8" />   
    8.   
    9.     <title>jQuery UI Demos</title>   
    10.   
    11.     <link rel="stylesheet" href="themes/trontastic/jquery-ui.css" />   
    12.   
    13.     <script src="scripts/jquery-1.9.1.js"></script>   
    14.   
    15.     <script src="scripts/jquery-ui-1.10.1.custom.js"></script>   
    16.   
    17.     <style>   
    18.   
    19.         #toolbar {   
    20.   
    21.             padding: 4px;   
    22.   
    23.             display: inline-block;   
    24.   
    25.         }   
    26.   
    27.         /* support: IE7 */   
    28.   
    29.         * + html #toolbar {   
    30.   
    31.             display: inline;   
    32.   
    33.         }   
    34.   
    35.     </style>   
    36.   
    37.     <script>   
    38.   
    39.         $(function () {   
    40.   
    41.             $("#beginning").button({   
    42.   
    43.                 text: false,   
    44.   
    45.                 icons: {   
    46.   
    47.                     primary: "ui-icon-seek-start"   
    48.   
    49.                 }   
    50.   
    51.             });   
    52.   
    53.             $("#rewind").button({   
    54.   
    55.                 text: false,   
    56.   
    57.                 icons: {   
    58.   
    59.                     primary: "ui-icon-seek-prev"   
    60.   
    61.                 }   
    62.   
    63.             });   
    64.   
    65.             $("#play").button({   
    66.   
    67.                 text: false,   
    68.   
    69.                 icons: {   
    70.   
    71.                     primary: "ui-icon-play"   
    72.   
    73.                 }   
    74.   
    75.             })   
    76.   
    77.             .click(function () {   
    78.   
    79.                 var options;   
    80.   
    81.                 if ($(this).text() === "play") {   
    82.   
    83.                     options = {   
    84.   
    85.                         label: "pause",   
    86.   
    87.                         icons: {   
    88.   
    89.                             primary: "ui-icon-pause"   
    90.   
    91.                         }   
    92.   
    93.                     };   
    94.   
    95.                 } else {   
    96.   
    97.                     options = {   
    98.   
    99.                         label: "play",   
    100.   
    101.                         icons: {   
    102.   
    103.                             primary: "ui-icon-play"   
    104.   
    105.                         }   
    106.   
    107.                     };   
    108.   
    109.                 }   
    110.   
    111.                 $(this).button("option", options);   
    112.   
    113.             });   
    114.   
    115.             $("#stop").button({   
    116.   
    117.                 text: false,   
    118.   
    119.                 icons: {   
    120.   
    121.                     primary: "ui-icon-stop"   
    122.   
    123.                 }   
    124.   
    125.             })   
    126.   
    127.             .click(function () {   
    128.   
    129.                 $("#play").button("option", {   
    130.   
    131.                     label: "play",   
    132.   
    133.                     icons: {   
    134.   
    135.                         primary: "ui-icon-play"   
    136.   
    137.                     }   
    138.   
    139.                 });   
    140.   
    141.             });   
    142.   
    143.             $("#forward").button({   
    144.   
    145.                 text: false,   
    146.   
    147.                 icons: {   
    148.   
    149.                     primary: "ui-icon-seek-next"   
    150.   
    151.                 }   
    152.   
    153.             });   
    154.   
    155.             $("#end").button({   
    156.   
    157.                 text: false,   
    158.   
    159.                 icons: {   
    160.   
    161.                     primary: "ui-icon-seek-end"   
    162.   
    163.                 }   
    164.   
    165.             });   
    166.   
    167.             $("#shuffle").button();   
    168.   
    169.             $("#repeat").buttonset();   
    170.   
    171.         });   
    172.   
    173.     </script>   
    174.   
    175. </head>   
    176.   
    177. <body>   
    178.   
    179.     
    180.   
    181.     <div id="toolbar" class="ui-widget-header ui-corner-all">   
    182.   
    183.         <button id="beginning">go to beginning</button>   
    184.   
    185.         <button id="rewind">rewind</button>   
    186.   
    187.         <button id="play">play</button>   
    188.   
    189.         <button id="stop">stop</button>   
    190.   
    191.         <button id="forward">fast forward</button>   
    192.   
    193.         <button id="end">go to end</button>   
    194.   
    195.     
    196.   
    197.         <input type="checkbox" id="shuffle" />   
    198.   
    199.         <label for="shuffle">Shuffle</label>   
    200.   
    201.     
    202.   
    203.         <span id="repeat">   
    204.   
    205.             <input type="radio" id="repeat0" name="repeat"   
    206.   
    207.                 checked="checked" />   
    208.   
    209.             <label for="repeat0">No Repeat</label>   
    210.   
    211.             <input type="radio" id="repeat1" name="repeat" />   
    212.   
    213.             <label for="repeat1">Once</label>   
    214.   
    215.             <input type="radio" id="repeatall" name="repeat" />   
    216.   
    217.             <label for="repeatall">All</label>   
    218.   
    219.         </span>   
    220.   
    221.     </div>   
    222.   
    223. </body>   
    224.   
    225. </html>   


    页面上的相应代码如下:

    <div id="pop_dialog" title="保存数据" style="display: none;">
        保存/放弃已添加的数据.
    </div>

    xx.js 代码如下,

    function InitializeEditResultDialog() {
        $("#pop_dialog").dialog({
            autoOpen: false,
            resizable: false,
            height: 200,
            width: 400,
            modal: true,
            closeOnEscape: true,
            buttons: {

                "Yes": function () {
                    $(this).dialog("close");
                    ProcessData();
                },

                "No": function () {
                    $(this).dialog("close");
                    ProcessData();
                }      

             }
        });
    }

    如果想根据条件控制dialog中的“Yes” 按钮变灰,可以:

    $("#btnSave").click(function () {
            $("#pop_dialog").dialog('open');

            if (validateInputBox() == false) {
                $('.ui-dialog-buttonpane').find('button:contains("Yes")').attr("disabled", "disabled");
            }
            else {
                $('.ui-dialog-buttonpane').find('button:contains("Yes")').removeAttr("disabled");
            }
        });

    注意:一定要是classId = '.ui-dialog-buttonpane',这是jQuery自己给加上的,通过这个就能找到“Yes”按钮了,就可以控制其样式了。

     

    或者

    var button1 = $('.ui-dialog-buttonpane').children('button')[1];

    $(button1).removeClass('ui-button-text-only').addClass('ui-button-text-icon');

    或者

    $("#id-dialog").dialog({        

         modal: true,        

        buttons: {            

             'Login': logIn,            

             Cancel: logOut

             },

             open: function() {

                 $buttonPane = $(this).next();

                 $buttonPane.find('button:first').addClass('accept').addClass('ui-priority-primary');

                 $buttonPane.find('button:last').addClass('cancel').addClass('ui-priority-secondary');

              } 

        });


    展开全文
  • dialog 弹窗显示和关闭

    千次阅读 2018-07-04 10:22:17
     现在来了解一下 弹窗 弹窗自己做项目发现有三种提示性弹窗 dialog动态提示就 Prodialog自定义交互弹窗 Alertdialog 如果正在做弹窗的朋友可以了解一下 我了解的就这些 还是要多看书 功底要好啊 这都...
  • Dialog的几种类型

    千次阅读 2016-10-19 22:58:58
    1、普通dialog new AlertDialog.Builder(DialogActivity.this) .setTitle("删除") .setMessage("确认删除?") .setNegativeButton("取消",null) .setPositiveButton("确认",null) .set
  • 安卓dialog的使用+如何自定义dialog

    万次阅读 多人点赞 2018-06-19 22:40:28
    回到正题,看到产品给我的设计图,有辣么多的自定义的dialog,发现之前自己只会系统自带的dialog,但是这样根本满足不了产品的需求,所以自己上周好好总结下,然后把产品给的需求完成。//哇哇哇,项目写不完了 什么...
  • DIALOG

    万次阅读 2016-04-19 17:27:28
    [SAP]屏幕Dynpro 原文链接:...对话屏幕Dynpro(SE51)....屏幕元素......屏幕属性......PAI事件的触发、屏幕元素Function Code设置......屏幕流逻辑Screen Flow Logic....
  • Android之Dialog详解

    万次阅读 多人点赞 2015-03-06 14:35:25
    Android中的对话框形式大致可分为五种:分别是一般对话框形式,列表对话框形式,单选按钮对话框,多选按钮对话框,自定义对话框。 在实际开发中,用系统的对话框会很少,因为太丑了,美工不...private void dialog1(){
  • Android常用对话框大全——Dialog

    万次阅读 多人点赞 2017-01-18 20:53:20
    今天就来谈谈开发中经常用的到的一个控件——Dialog,对话框一般我们就用来提示一些信息给用户,让用户自主选择,或者在一些操作不可逆的情况下我们提示用户是否继续操作,下面就让我们一起来学习吧。老司机发车啦…...
  • android 对话框Dialog背景透明

    万次阅读 热门讨论 2011-10-14 20:04:29
    先看效果:   这是我做的一个拨号器强的面板,拨号的时候会查询手机中的联系人,显示在拨号面板上方,点击弹出透明对话框供选择。...这次重点是透明对话框。... parent="@android:style/Theme.Dialog">
  • 一个强大的Android对话框库,简化自定义对话框.支持2.2+. 内置Dialog,方便直接使用 丰富的内置动画库,方便直接使用 支持快速自定义Dialog 支持快速自定义Popup 支持自定义Dialog动画 git 相关链接 ...
  • 例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog).
  • Android对话框

    2018-06-09 20:45:42
    例如onCreateDialog(int),onPrepareDialog(int,Dialog),showDialog(int),****dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). ...
  • Android 对话框(Dialog)的简单使用

    千次阅读 2018-05-01 10:21:33
    一、实现功能点击按钮弹出对话框对话框有三个按钮以及EditText编辑框,并且获取输入值。二、实现代码首先获得Button对象,点击按钮,调用showNormaDialog方法,弹出对话框。Button mbt1 = (Button) findViewById(R...
  • 学习Android三四天了,今天给大家分享一下我的dialog对话空间的实现。想实现四种形式,如下图所示。 上面是第一个按钮实现的单选对话框,那么如何实现全部功能呢。 首先需要在布局文件(activity_main.xml)中...
  • Android自定义对话框Dialog(界面美化)

    热门讨论 2013-05-23 14:55:39
    Android自定义对话框Dialog(界面美化)
  • android开发中,对话框的使用还是很平凡的,本篇文章介绍了Android 对话框的实例,详细的介绍了多种对话框的方法,有兴趣的可以了解一下。
  • Android对话框设置全屏

    千次阅读 2017-10-16 08:43:58
    Android对话框设置全屏 // 全屏 WindowManager.LayoutParams lp = dialog.getWindow().getAttributes(); lp.width = WindowManager.LayoutParams.MATCH_PARENT; lp.height = WindowManager.LayoutParams....
  • 例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). ...
  • Android对话框的大小设置

    千次阅读 2016-12-15 10:50:56
    Dialog的大小除了可以引用自定义布局外, 还可以通过代码进行固定:mDialog.show(); // Window window = mDialog.getWindow(); // window.getDecorView().setPadding(0, 0, 0, 0); WindowManager.LayoutPara
  • 14. android dialog——普通对话框原理

    千次阅读 2011-04-23 01:58:00
    先看过效果图:图1 输入框默认文字为"这是一个普通对话框。" 图2 当点击"显示普通对话框"后,将弹出一个对话框 图3 点击图2中的对话框的确定按钮, 输入框里输入自己的内容 图4
  • Android自定义Dialog对话框的几种方法(精简版)

    万次阅读 多人点赞 2018-05-31 11:55:19
    自定义对话框是经常使用的功能,我们常用的弹窗操作,除了使用popwindow就是使用dialog来实现,这两种组件都支持之定义布局和功能来满足我们个性化的需求,也可以不采用自定义而直接使用系统封装好的api来实现功能。...
  • 一、简单对话框 以退出登录为例: AlertDialog.Builder dialog=new AlertDialog.Builder(mContext); dialog.setIcon(R.mipmap.welcome_logo); dialog.setTitle("退出登录"); dialog.setMessage(user_id+"\n你...
  • android 对话框Dialog)使用

    千次阅读 2017-02-27 17:27:15
    android 对话框Dialog)使用参考:对话框:https://developer.android.com/guide/topics/ui/dialogs.html 使用 AlertDialog 类进行对话框的基本功能创建:AlertDialog:...
  • 1.前言在Android系统中窗口(Window...Android开发中经常会使用到Dialog,PopupWindow,Toast等对话框来作为提示信息或者和用户交互。然而这些对话框其实都是窗口,它们的创建和移除机制也就是Android系统对窗口的添加
  • 一:AlterDialog对话框 二:普通对话框 运行效果: 代码详情 备注:onBackPressed()事件是用户点击...三:单选对话框 ...四:多选对话框 ...五:自定义对话框 ...1:自定义对话框dialog.xml布局 <?xml version="1.0" encodin...
  • Android 对话框(Dialog)

    2011-03-07 18:21:00
    例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). ...
  • Android dialog 对话框自定义布局

    千次阅读 2015-12-25 19:06:51
    Android四年了 自定义dialog布局一直都写不好。。 今天来汇总一下 Activity中用到自定义的dialog  一般情况下 public class BaseDialog extends Dialog { public BaseDialog(Context context) { ...
  • 自定义Android对话框样式示例

    千次下载 热门讨论 2012-11-07 01:20:05
    完全自定义Android对话框AlertDialog的实现,在Android2.1下编译通过

空空如也

1 2 3 4 5 ... 20
收藏数 343,308
精华内容 137,323
关键字:

dialog