Android Dialog详解

山居秋暝

[唐]  王维
空山新雨后,天气晚来秋。
明月松间照,清泉石上流。
竹喧归浣女,莲动下渔舟。


【韵译】
一场新雨过后,青山特别清朗,
秋天的傍晚,天气格外的凉爽。
明月透过松林撒落斑驳的静影,
清泉轻轻地在大石上叮咚流淌。
竹林传出归家洗衣女的谈笑声,
莲蓬移动了,渔舟正下水撒网。
任凭春天的芳菲随时令消逝吧,
游子在秋色中,自可留连徜徉


在Android开发过程中我们经常会遇到如下的场景: 在界面上弹出一个弹框,对用户进行提醒,并让用户做出某些选择性的操作  

                                                                              

        删除某个应用的系统级别的Dialog                                                                       某个应用的Dialog


上面是两个比较常用的场景,还有很多场景可用到Dialog. 那么我们就来开始学习Dialog吧.

Andoid系统给我们提供了8种定义好的Dialog.拿过来就可以直接使用. 但是这7种Dialog可能跟我们 app风格不符,甚至有些丑陋,那么我们就需要自定义Dialog

在学习自定义Dialog之前我们先学习下Android给我们提供的几种现成的Dialog


一.普通的Dialog


效果图


代码实现

package com.example.administrator.day_20;


import android.app.Dialog;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;


public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //构建Dialog建造者                                   //上下文环境
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //设置标题
        builder.setTitle("对话框");
        //设置图标
        builder.setIcon(R.mipmap.ic_launcher);
        //设置Message
        builder.setMessage("哈哈哈哈");


        //设置确定按钮及其点击事件
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.i("haha","我是确定按钮");
            }
        });
        //设置取消按钮及其点击事件
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.i("haha","我是取消按钮");
            }
        });
        //设置中立按钮及其点击事件
        builder.setNeutralButton("中立", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.i("haha","我是中立按钮");
            }
        });
        //使用Dialog构造器,创造出来一个Dialog
        Dialog dialog = builder.create();
        //显示
        dialog.show();
    }
}


二   列表形式的Dialog



代码实现

package com.example.administrator.day_20;


import android.app.Dialog;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;


public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //构建Dialog建造者                                   //上下文环境
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //设置标题
        builder.setTitle("对话框");
        //设置图标
        builder.setIcon(R.mipmap.ic_launcher);
//        //设置Message,如果用列表形式的Dialog这行代码需要去掉
//        builder.setMessage("哈哈哈哈");


        final String[] items = {"111","222","333","444"};
        //设置确定按钮及其点击事件
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.i("haha","我是确定按钮");
            }
        });
        //设置取消按钮及其点击事件
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.i("haha","我是取消按钮");
            }
        });
        //设置中立按钮及其点击事件
        builder.setNeutralButton("中立", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.i("haha","我是中立按钮");
            }
        });
        //相对于普通Dialog改变的地方
        builder.setItems(items, new DialogInterface.OnClickListener() {
            //which表示点击的是items中的第几个
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.i("haha",items[which]);
            }
        });
        //使用Dialog构造器,创造出来一个Dialog
        Dialog dialog = builder.create();
        //显示
        dialog.show();
    }
}

三  适配器Dialog



代码实现

package com.example.administrator.day_20;


import android.app.Dialog;
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值