文档章节

Android对话框使用小结

北ing
 北ing
发布于 2015/10/20 19:23
字数 596
阅读 49
收藏 0
点赞 0
评论 0
--AlertDialog   
--对话框结合适配器使用
----普通使用
----设置为单选模式
----设置为多选模式
-------两个数组,一个数组是item,一个数组是选择默认哪些选项被选中
----使用自定义布局
--对话框和菜单的结合使用

1)简单使用

//创建对话框构建器对象
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //使用对话框构建器对象初始化对话框的属性
        builder.setTitle("确认")
               .setMessage("是真想退出吗?")
               .setIcon(R.drawable.ic_launcher)
               .setCancelable(false)//设置点击对话框之外的范围是否取消该对话框
               .setPositiveButton("是的", new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    finish();//销毁掉当前的Activity
                }
            })
              .setNegativeButton("不是", null);//第二个参数为null,点击则关闭对话框
        //生成对话框
        dialog = builder.create();

2)对话框结合适配器使用

1//对话框结合着适配器的使用
    private AlertDialog colorDialog;
    private ArrayAdapter<String> adapter;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
        adapter.add("红色");
        adapter.add("蓝色");
        adapter.add("黄色");
        colorDialog = builder.setTitle("选择颜色对话框")
               .setIcon(R.drawable.ic_launcher)
               .setAdapter(adapter, new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    String value = adapter.getItem(which);
                    textView.setText(value);
                }
               })
               .create();

这里写图片描述

3)把对话框设置单选模式

    private AlertDialog fontSizeDialog;
    private float[] fontSize={25f,30f,35f,40f,45f};
AlertDialog.Builder builder2 = new AlertDialog.Builder(this);
        fontSizeDialog = builder2.setTitle("字体选择对话框")
                .setIcon(R.drawable.ic_launcher)
                .setSingleChoiceItems(R.array.fontSize, 2,new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String str = getResources().getStringArray(R.array.fontSize)[which];
                        setTitle(str);
                        textView.setTextSize(fontSize[which]);
                        dialog.dismiss();//关闭对话框
                    }
                })
                .create();

这里写图片描述

4)把对话框设置多选模式

private AlertDialog lovesDialog;
    private String[] hobbies= {"eat","sleep","playgame","study","run"};
    private boolean[] checked = {true,false,false,true,true};
//hobbies是对话框中的数据,checked 是每个选项的默认选择情况
AlertDialog.Builder builder3 = new AlertDialog.Builder(this);
        lovesDialog = builder3.setTitle("选择爱好")
                .setIcon(R.drawable.ic_launcher)
                .setMultiChoiceItems(hobbies, checked, new OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                           checked[which]=isChecked;
                    }
                })
                .setPositiveButton("确定", new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        for(int i=0;i<checked.length;i++)
                        {
                            if(checked[i])
                                textView.append(loves[i]);
                        }
                    }
                })
                .create();

这里写图片描述

5)使用自定义布局的对话框

        View view = getLayoutInflater().inflate(R.layout.dialog_layout, null);
        edit_name = (EditText) view.findViewById(R.id.edit_name);
        edit_tel = (EditText) view.findViewById(R.id.edit_tel);

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        personDialog = builder.setTitle("添加人员信息对话框")
                .setIcon(R.drawable.ic_launcher)
                .setView(view)
                .setPositiveButton("确定", new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String name  = edit_name.getText().toString();
                        String tel = edit_tel.getText().toString();
                        textView.append("\r\n姓名:"+name);
                        textView.append(" 电话:"+tel);
                    }
                })
                .create();

最后一句:实际开发中,使用自定义布局的比较多,所以UI设计是非常关键的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

© 著作权归作者所有

共有 人打赏支持
北ing
粉丝 0
博文 12
码字总数 17332
作品 0
海淀
Android开发权威指南(第2版)新书发布

《Android开发权威指南(第二版)》是畅销书《Android开发权威指南》的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45章精彩内容供读者学习。  《Android开发权威指...

androidguy ⋅ 2013/09/05 ⋅ 0

Android技能树 — Rxjava取消订阅小结(1):自带方式

前言: Android技能树系列: Android基础知识 Android技能树 — 动画小结 Android技能树 — View小结 Android技能树 — Activity小结 Android技能树 — View事件体系小结 Android技能树 — ...

青蛙要fly ⋅ 05/29 ⋅ 0

使用Kotlin:让Android与JS交互的详解

先来说说什么是JS交互: 说的俗一点就是通过我们项目中的控件来调用HTML里的JS代码,也可以通过JS来调用项目中的代码。 Android与JS之间的桥梁就是WebView了,我们是通过WebView来实现他们的...

富江___ ⋅ 06/11 ⋅ 0

Android技能树 — Rxjava取消订阅小结(2):RxLifeCycle

前言: Android技能树系列: Android基础知识 Android技能树 — 动画小结 Android技能树 — View小结 Android技能树 — Activity小结 Android技能树 — View事件体系小结 Android技能树 — ...

青蛙要fly ⋅ 05/29 ⋅ 0

Android P Beta 2 及终版 API 强势来袭!

在四周前的 Google I/O 开发者大会上,我们发布了Android P 的首个 Beta 版,将人工智能 (AI) 定位为操作系统的核心,并侧重于提供智能且简洁的体验。 今天,我们隆重推出 Android P Beta 2...

谷歌开发者 ⋅ 06/07 ⋅ 0

Android技能树 — 树基础知识小结(一)

前言: 现在安卓面试,对于数据结构的问题也越来越多了,也经常看到别人发的面试题都是问什么红黑树,二叉树查找等,所以我们虽然不会马上就会各种难的面试题,但起码树的基础知识还是要会的...

青蛙要fly ⋅ 05/04 ⋅ 0

31 天,从浅到深轻松学习 Kotlin

这篇文章介绍开发者用 31 天学习 Kotlin 的心得,深入浅出地介绍了 Kotlin 的一些基本特性以及高级用法,对处于不同阶段的 Kotlin 开发者来说,在提高开发效率和了解 Kotlin 提供一些参考,希...

Android_开发者 ⋅ 05/30 ⋅ 0

Android Hybrid开发:这是一份详细 & 全面的WebView学习攻略

前言 现在很多里都内置了Web网页(),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 那么这种该如何实现呢?其实这是里一个叫组件实现 今天,我将献上一份全面 & 详细的 攻略,含具体...

Carson_Ho ⋅ 06/19 ⋅ 0

Android WebView:这是一份 详细 & 易懂的WebView学习攻略(含与JS交互、缓存构建等)

前言 现在很多里都内置了Web网页(),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 那么这种该如何实现呢?其实这是里一个叫组件实现 今天,我将献上一份全面 & 详细的 攻略,含具体...

Carson_Ho ⋅ 05/21 ⋅ 0

Android WebView:这是一份全面 & 详细的WebView学习指南

前言 现在很多里都内置了Web网页(),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 那么这种该如何实现呢?其实这是里一个叫组件实现 今天,我将献上一份全面 & 详细的 攻略,含具体...

carson_ho ⋅ 04/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 22分钟前 ⋅ 0

VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】

前言 我是上学期学的汇编,因为有vs又不想用课上教的麻烦的dosbox以及masm32,但是一直没找到高亮插件和能调试的(难在运行不了而找不到答案上,出现的错误在最后放出,还请先达们不吝指点)...

simpower ⋅ 32分钟前 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 35分钟前 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 42分钟前 ⋅ 0

你真的明白RPC 吗?一起来探究 RPC 的实质

你真的明白RPC 吗?一起来探究 RPC 的实质 不论你是科班出身还是半路转行,这么优秀的你一定上过小学语文,那么对扩句和缩句你一定不陌生。缩句就是去除各种修饰提炼出一句话的核心,而不失基...

AI9o後 ⋅ 44分钟前 ⋅ 0

z-index设置失效?

今天碰到了一个问题,就是在给li设置提示框的时候,有用到遮罩效果,本来想把对应的出现在最顶层,可是不管将li设置的z-index值设为多大,li都没有出现在遮罩层之上。 我在网上查了z-index设...

IrisHunag ⋅ 51分钟前 ⋅ 0

CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析

CyclicBarrier、CountDownLatch以及Semaphore是Java并发包中几个常用的并发组件,这几个组件特点是功能相识很容易混淆。首先我们分别介绍这几个组件的功能然后再通过实例分析和源码分析其中设...

申文波 ⋅ 55分钟前 ⋅ 0

Java对象的序列化与反序列化

Java对象的序列化与反序列化

Cobbage ⋅ 今天 ⋅ 0

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 今天 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部