Android之对话框的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011626964/article/details/49202079

一.对话框

对话框:就是在当前Activity之上显示的小窗口,用于和用户间进行信息交互。对话框通常用来作为提示或直接与程序运行相关的短暂停留界面。

**

二、AlertDialog可以实现大部分和用户交互的对话框

**

为了创建一个AlertDialog,可以使用AlertDialog.Builder子类。使用AlertDialog.Builder(Context)得到一个对话框构造器,然后使用该类的共有方法来定义AlertDialog对话框的所有属性。在你使用对话框构造器设置完属性之后,调用create()方法即可得到一个AlertDialog的对象。

1.确定取消基本对话框

    //创建AlertDialog对话框构造器
    AlertDialog.Builder builder=new Builder(this);
    //设置对话框标题
    builder.setTitle("警告");
    //设置对话框内容
    builder.setMessage("确定要删除该信息?");
    //设置对话框不能被取消
    builder.setCancelable(false);
    //设置第一个按钮的标签及其事件监听器
    builder.setPositiveButton("确定", new OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {

        }
    });
    //设置第二个按钮的标签及其事件监听器
    builder.setNegativeButton("取消", null);
    //创建对话框
    AlertDialog alter=builder.create();
    //显示对话框
    builder.show();

这里写图片描述

2.单选对话框

AlertDialog.Builder builder=new Builder(this);
        builder.setTitle("请选择性别:");
        final String[] items={"男","女"};
        builder.setSingleChoiceItems(items, -1, new OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        builder.setPositiveButton("确定",null);
        builder.setNegativeButton("取消选择", null);
        builder.show();

这里写图片描述

3.多选对话框

AlertDialog.Builder builder=new Builder(this);
        builder.setTitle("请选择爱好:");
        final String[] items={"篮球","足球","乒乓球","羽毛球"};
        final boolean[] checkedItems={false,false,false,false};
        builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener(){

            @Override
            public void onClick(DialogInterface dialog, int which,
                    boolean isChecked) {

            }});
        builder.setPositiveButton("确定",null);
        builder.setNegativeButton("取消选择", null);
        builder.show();

这里写图片描述

4.输入对话框

new AlertDialog.Builder(this).setTitle("警告").setView(new EditText(this)).setCancelable(false)
        .setPositiveButton("确定",new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub

            }
        }).setNegativeButton("取消", null).show();
        }

这里写图片描述

三:进度条:

为了避免加载过慢造成的不太好的用户体验,可以设置进度条对话框给用户提醒加载进度。

1.进度对话框

final ProgressDialog progress=new ProgressDialog(this);
        progress.setTitle("提醒");
        progress.setMessage("正在加载数据...");
        progress.show();

        new Thread(){
            public void run(){
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                //进度对话框关闭
                progress.dismiss();
            }
        }.start();

这里写图片描述
2.进度条对话框

final ProgressDialog progress=new ProgressDialog(this);
            progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            progress.setMax(100);
            progress.setTitle("提醒");
            progress.setMessage("正在加载数据...");
            progress.show();

            new Thread(){
                public void run(){
                    for(int i=1;i<100;i++){
                        try {
                            Thread.sleep(200);
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        progress.setProgress(i);
                    }
                    //进度对话框关闭
                    progress.dismiss();
                }
            }.start();

这里写图片描述

四.自定义对话框:

在对话框中设置自己想要的任何效果。

1.先定义自定义对话框的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="65dp"
android:gravity="center_vertical"
>
<ImageView 
    android:layout_width="35dp"
    android:layout_height="35dp"
    android:id="@+id/iv"

    />
<TextView
    android:layout_centerVertical="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/iv"
    android:layout_marginLeft="12dp"
    android:id="@+id/tv"
    android:textSize="22sp"
    />

2.使用setContentView(int)来设置对话框的布局为自定义的布局

Dialog dialog=new Dialog(MainActivity.this);
            dialog.setTitle("自定义");
            dialog.setContentView(R.layout.item);

            ImageView image=(ImageView)dialog.findViewById(R.id.iv);
            image.setImageResource(R.drawable.ic_launcher);

            TextView text=(TextView)dialog.findViewById(R.id.tv);
            text.setText("this is a dialog");

            dialog.show();

这里写图片描述

猜你喜欢

转载自blog.csdn.net/u011626964/article/details/49202079