码迷,mamicode.com
首页 > 移动开发 > 详细

安卓三种常用的对话框

时间:2016-04-18 23:51:07      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:

在程序设计中,我们经常会用到对话框,这里,我为大家写了三种常见的案例。下面我们看运行截图。

技术分享技术分享技术分享技术分享

下面我们直接看代码

布局文件  activity_main.xml

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.diagl.MainActivity" >

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick1"
        android:text="确定取消对话框" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick2"
        android:text="单选对话框" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick3"
        android:text="多选对话框" />

</LinearLayout>

 java文件

package com.example.diagl;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    // 确认/取消对话框
    public void onClick1(View v) {

        // AlertDialog无法通过new创建对象,所以要用其内部类Builder创建
        AlertDialog.Builder builder = new Builder(this);
        // 设置相关属性,图标等不是必须设置的属性
        builder.setIcon(android.R.drawable.alert_light_frame);
        builder.setTitle("对话框标题");
        builder.setMessage("这个是对话框正文");

        // 设置确定按钮的文本你和添加监听内容
        builder.setPositiveButton("确定", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, "点击了确定按钮", 0).show();
            }
        });

        // 设置取消按钮的文本和监听内容
        builder.setNegativeButton("取消", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, "点击了取消按钮", 0).show();
            }
        });
        // 创建器创建对话框
        AlertDialog alertDialog = builder.create();
        alertDialog.show();
        /*
         * 上面语句简写的话,直接builder.show();也是可以得
         */
    }

    // 多选对话框
    public void onClick2(View v) {

        AlertDialog.Builder aBuilder = new Builder(this);

        aBuilder.setTitle("请选择女朋友");
        /*
         * 第一个参数:单选对话框的选项,一般为字符串数组 第二个参数:选择默认选项,-1表示没有默认选项。要选默认选项可以传入字符串数组下标
         * 第三个参数:监听
         */
        final String[] items = { "朱主爱", "新垣结衣", "刘诗诗" };

        aBuilder.setSingleChoiceItems(items, -1, new OnClickListener() {

            /*
             * 第一个参数:表示当前对话框 第二个参数:表示用户所选择的选项下标(也就是字符串数组下标)
             */
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, "你选择了" + items[which], 0)
                        .show();
                // 这个是让用户点击后让对话框消失的语句
                dialog.dismiss();

            }
        });

        aBuilder.show();

    }

    // 多选对话框
    public void onClick3(View v) {

        AlertDialog.Builder aBuilder = new Builder(this);
        aBuilder.setTitle("请选择女朋友");
        // 选项内容
        final String[] items = { "JoyceChu", "新垣结衣", "Taylor Swift", "赵丽颖",
                "刘诗诗" };
        // 默认被选中的选项,true为选择,false为没有选择,分别对应内容数组元素
        final boolean[] checkedItems = { true, true, false, false, false };
        /*
         * 第一个参数:字符串数组,要选择的选项 第二个参数:布尔值数组,表示默认被选中的选项
         * 第三个参数:监听,注意用的是OnMultiChoiceClickListener()的监听方法
         */
        aBuilder.setMultiChoiceItems(items, checkedItems,
                new OnMultiChoiceClickListener() {

                    /*
                     * 第一个参数:当前对话框 第二个参数:选择内容的小标 第三个参数:选择中的选项为true,没选择为false
                     */
                    @Override
                    public void onClick(DialogInterface dialog, int which,
                            boolean isChecked) {
                        // TODO Auto-generated method stub
                        checkedItems[which] = isChecked;
                    }
                });
    
        // 添加确定按钮
        aBuilder.setPositiveButton("确定", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                String textString = "";
                for (int i = 0; i < checkedItems.length; i++) {
                    if (checkedItems[i]) {
                        textString = textString + items[i] + ",";
                    }
                }
                Toast.makeText(MainActivity.this, "你选择了" + textString + "做女朋友", 0)
                        .show();
                dialog.dismiss();
            }
        });
        aBuilder.show();

    }

}

 

安卓三种常用的对话框

标签:

原文地址:http://www.cnblogs.com/linfenghp/p/5406148.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!