文档章节

Android第四十一天(2)

黄晓磊
 黄晓磊
发布于 2016/07/25 21:37
字数 830
阅读 3
收藏 0
点赞 0
评论 0

1、对话框的分类

        <1>AlertDialog    警告对话框(提示对话框)

                (1)父类:android.app.Dialog

                (2)创建AlertDialog对话框的步骤

                        a.创建AlertDialog.Builder对象,该对象能创建AlertDialog;


AlertDialog alertDialog = null;
AlertDialog.Builder builder = new Builder(MainActivity.this);

                        b.调用Builder对象的方法设置图标、标题、内容、按钮等;


builder.setTitle("警告对话框")// 设置标题
.setIcon(R.drawable.icon18)// 设置标题图标
.setMessage("确定要删除吗?")// 设置标题文本内容
.setPositiveButton("确定", new OnClickListener() {
     @Override
public void onClick(DialogInterface dialog, int which) {
// 点击确定按钮要做的事
Toast.makeText(MainActivity.this, "确定",Toast.LENGTH_SHORT).show();})
     .setNegativeButton("取消", null)
     .setNeutralButton("其他", null);

                        c.调用Builder对象的create()方法创建AlertDialog对话框.setCanceledOnTouchOutside(false):点击对话框以外对话框不消失


// 通过builder对象创建对话框对象
alertDialog = builder.create();

                        d.调用AlertDialog的show()方法来显示对话框


// 显示对话框
alertDialog.show();

        <2>ProgressDialog    进度对话框

                (1)父类:android.app.AlertDialog

                (2)创建ProgressDialog对话框的步骤:

                        a.实例化ProgressDialog,创建出ProgressDialog对象

                        b.调用该对象的方法设置图标、标题、内容、按钮等

                        c.调用 ProgressDialog 对象的show()方法显示出 ProgressDialog 对话框

        <3>DatePickerDialog    日期选择对话框

                (1)父类:android.app.AlertDialog

                (2)创建DatePickerDialog对话框的步骤:

                        a.实例化DatePickerDialog,创建出 DatePickerDialog对象


DatePickerDialog dialog = new DatePickerDialog(this,new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
//选择日期之后调用的方法 注意:参数monthOfYear是0~11
Toast.makeText(MainActivity.this, year+":"+(monthOfYear+1)+":"+dayOfMonth, Toast.LENGTH_SHORT).show();
}
}, year, month, day);

                        b.调用DatePickerDialog对象的show()方法显示出DatePickerDialog对话框


dialog.show();

                        c.绑定监听器:OnDateSetListener()


Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
//选择日期之后调用的方法 注意:参数monthOfYear是0~11
    Toast.makeText(MainActivity.this, year+":"+(monthOfYear+1)+":"+dayOfMonth, Toast.LENGTH_SHORT).show();
}

        <4>TimerPickerDialog    时间选择对话框

        <5>自定义对话框(登录对话框、关于对话框)

                (1)AlertDialog——自定义对话框的创建步骤:

                        a.创建AlertDialog.Builder对象


AlertDialog.Builder builder = new Builder(this);

                        b.设置对话框的标题、按钮等(既可以使用系统自带的,也可以自定义)

                        c.自定义布局文件


<?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" >

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除"
android:textSize="30sp"
android:gravity="center"
android:padding="10dp"/>

<TextureView
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#ccc"/>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="确定要删除吗?"
android:gravity="center"
android:padding="15dp"
android:textSize="20sp"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center">

<Button
android:id="@+id/btnSure"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="确定"
/>
<Button
android:id="@+id/btnClean"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="取消"
/>
</LinearLayout>
</LinearLayout>

                        d.使用LayoutInflater 的 inflater()方法填充自定义的布局文件,返回view对象。用该对象的findViewById()方法加载自定义布局上所有控件;


// 获取布局对象的两种方法
View view2 = LayoutInflater.from(this).inflate(R.layout.dialog_layout,null);
// view2=getLayoutInflater().inflate(R.layout.dialog_layout, null);

                        e.调用Builder对象的setView()方法加载view对象;


builder.setView(view2);// 设置对话框要显示的布局
Button btnSure = (Button) view2.findViewById(R.id.btnSure);

                        f.调用Builder对象的create()方法创建AlertDialog对话框;


customDialog = builder.create();

                        g.调用AlertDialog的show()方法来显示对话框


customDialog.show();

        <6>列表对话框

                (1)普通列表对话框

                (2)单选列表对话框

                (3)多选列表对话框

                (4)带图标的列表对话框

© 著作权归作者所有

共有 人打赏支持
黄晓磊
粉丝 21
博文 51
码字总数 45039
作品 0
成都
Android第四十一天

1.概念 <1>Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单。这种菜单叫做选项菜单(Option Menu)。 <2>从3.0开始,Android不要求手机设备上必须提供MEN...

黄晓磊 ⋅ 2016/07/25 ⋅ 0

Android第三十一天

1、什么是Android的四层体系架构? <1>系统核心层(Linux Kernel) Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙...

黄晓磊 ⋅ 2016/07/11 ⋅ 0

Android第四十一天(3)

1、NotificationManager类对象 <1>getSystemService(Context.NOTIFICATION_SERVICE) 获取通知管理对象 <2>notify(int id, Notification notification) //定义通知管理对象 //定义通知构造器......

黄晓磊 ⋅ 2016/07/25 ⋅ 0

React Native 【学习总结】-【Jenkins集成】

简述 Jenkins是一个持续集成工具,它本身有很丰富的插件提供使用,方便持续集成,为开发省时省力,下面是项目中对新的RN项目做的持续集成例子,通过该例子学会如何使用jenkins。 Jenkins安装...

Pape ⋅ 05/18 ⋅ 0

Unity发布Android版本

先大概说一下我自己的经历吧,总的大概用了10小时吧。刚开始装的是jre和Android stdio,然后发现要装的是JDK和SDK,然后去装JDK和SDK,装JDK很顺利,装SDK失败了,原因未知。后面是用 Androi...

a_clear_chen ⋅ 05/08 ⋅ 0

Android第二十一天

一:TCP/IP协议 TCP/IP是一个协议族。 TCP:(Transmission Control Protocol)传输控制协议 IP:(Internet Protocol)互联网协议 四层网络体系结构:物理层(网络接口层)、互联网络层(包含I...

黄晓磊 ⋅ 2016/06/27 ⋅ 0

Android模拟器如何异型屏

前言 Android Studio 3.1 稳定版已发布,重点围绕产品质量和应用开发效率进行改进。 详细请看Android Studio 3.1新特性介绍 由于我是那种爱折腾的人,第一眼看见的不是D8不是Kotlin Lint 检查...

no白菜 ⋅ 04/13 ⋅ 0

Gradle/Studio构建问题(Ant/Gradle)

> 使用Gradle遇到的问题及其他: Android Studio安装过程常见问题图解-- http://jingyan.baidu.com/article/fd8044fad5bdca5031137ab7.html 1. 将GitHub上的新项目导入Studio中 Pano360-mast......

shareus ⋅ 05/11 ⋅ 0

PPT学习31_图形设计初级(7)

大家好,欢迎和我一起学习PPT小知识,今天是第三十一天,我最喜欢的大月日,选择在这一天作为暂时的告别日,希望短暂的分别后我们都可以对PPT有个更深入的了解。 和大家从零到设计,我有一个...

徐胥 ⋅ 2017/06/14 ⋅ 0

Android插件化开发之动态加载技术学习

Android插件化开发之动态加载技术学习 为什么要插件化开发和动态加载呢?我认为原因有三点: 可以实现解耦 可以解除单个dex函数不能超过65535的限制 可以给apk瘦身,比如说360安全卫士,整个...

幸运券发放 ⋅ 05/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部