课程内容
1.介绍DatePicker和TimePicker两种实现动态输入日期和事件的功能
2.介绍DatePickerDialog和TimePickerDialog来年耕种实现动态输入日期和事件的对话框
3.介绍两组针对检测日期时间改变的监听器包含:
 onDateChangedListener和OnTimeChangedListener
 onDateSetListener和OnTimeSetListener
当用户更改了DatePicker里的年、月、日时,将出发OnDateCHangedListener监听器的onDateChange()事件
当用户更改了TimePicker里的时、分时,将出发OnTimeCHangedListener监听器的onTimeChanged事件
当用户更改了DatePickerDialog里的年、月、日时,将出发OnDateSetListener监听器的onDateSet()事件
当用户更改了TimePickerDialog里的时、分时,将出发OnTimeSetListener监听器的onTimeSet()事件

需求功能
默认在标题栏中展示当前日期和事件,通过监听器去获取用户选择日期或事件的结果,并将变更的日期或时间展示在标题栏上
通过setTitle()设置标题。

DatePicker实时更改年、月、日:

        datePicker = (DatePicker) findViewById(R.id.datePicker1);
datePicker.init(year, month, day, new OnDateChangedListener() { @Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
setTitle(String.format("%d-%02d-%02d", year, monthOfYear+1, dayOfMonth));
} });

TimePicker实时更新时、分:

        timePicker = (TimePicker) findViewById(R.id.timePicker1);
timePicker.setOnTimeChangedListener(new OnTimeChangedListener() { @Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
setTitle(String.format("%02d:%02d", hourOfDay, minute));
}
});

新建一个DatePickerDialog用于展示:

        new DatePickerDialog(this, new OnDateSetListener() {

            @Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
setTitle(String.format("%d-%02d-%02d", year, monthOfYear+1, dayOfMonth));
}
}, year, month, day).show();

新建一个TimePickerDialog用于展示:

        new TimePickerDialog(this, new OnTimeSetListener() {

            @Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
setTitle(String.format("%02d:%02d", hourOfDay, minute));
} }, hour, minute, true).show();
package com.example.datepickertimepicker;

import java.util.Calendar;

import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener; public class MainActivity extends ActionBarActivity { private DatePicker datePicker;
private TimePicker timePicker;
private Calendar calendar;
private int year;
private int month;
private int day;
private int hour;
private int minute; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
hour = calendar.get(Calendar.HOUR_OF_DAY);
minute = calendar.get(Calendar.MINUTE);
setTitle(String.format("%d-%02d-%02d %02d:%02d", year, month+1, day, hour, minute)); datePicker = (DatePicker) findViewById(R.id.datePicker1);
datePicker.init(year, month, day, new OnDateChangedListener() { @Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
setTitle(String.format("%d-%02d-%02d", year, monthOfYear+1, dayOfMonth));
} }); timePicker = (TimePicker) findViewById(R.id.timePicker1);
timePicker.setOnTimeChangedListener(new OnTimeChangedListener() { @Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
setTitle(String.format("%02d:%02d", hourOfDay, minute));
}
}); new DatePickerDialog(this, new OnDateSetListener() { @Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
setTitle(String.format("%d-%02d-%02d", year, monthOfYear+1, dayOfMonth));
}
}, year, month, day).show(); new TimePickerDialog(this, new OnTimeSetListener() { @Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
setTitle(String.format("%02d:%02d", hourOfDay, minute));
} }, hour, minute, true).show();
}
}

MainActivity.java

<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"> <DatePicker
android:id="@+id/datePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <TimePicker
android:id="@+id/timePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> </LinearLayout>

activity_main.xml

注意事项:
1.DatePicker对象以init()这个方法来指定DatePicker初始的年、月、日及OnDateCHangedListener()的事件;而TimePicker对象则是直接以setOnTimeCHangedListener()事件来处理事件改变程序要做的操作。
2.DatePickerDialog与TimePickerDialog与前面这两种类型的对象最大的差别在于DatePicker与TImePicker是直接显示在屏幕画面上,而DatePickerDialog与TimePickerDialog对象则是以弹出Dialog的方式来显示。

效果:

         

Android 使用DatePicker以及TimePicker显示当前日期和时间的更多相关文章

  1. 【Android自学日记】使用DatePicker以及TimePicker显示当前日期和时间

    DatePicker 1.获取一个日历对象: Calendar cal=Calendar.getInstance(); 2.获取当前日期及时间: int year=cal.get(Calendar.Y ...

  2. Android多种方法显示当前日期和时间

    文章选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术.本文探讨Android显示当前日期和时间的方法. ...

  3. Android中DatePicker与TimePicker用法讲解(包括DatePickerDialog与TimePickerDialog)

    实现效果:将DatePicker和TimePicker修改的日期和时间实时显示在程序标题栏上. 1.通过DatePicker和TimePicker来实现 布局为main.xml <?xml ve ...

  4. WdatePicker文本框显示当前日期和时间限制<My97DatePicker两个日期范围不超过30天,第一个小于第二个,都不大于当前日期 >

    My97DatePicker是很不错的一个日期选择插件,体积只有几十k但是功能非常强大.官网:http://www.my97.net/ 能满足很多苛刻的要求. WdatePicker文本框显示当前日期 ...

  5. Android 6.0 中TimePicker显示为滚动样式的方法

    在Android6.0中,TimePicker控件的默认样式为转盘的样式,就像这个样子: 如果想要显示为之前的滚动样式的话也很简单,只要在布局文件中设置TimePicker的timePickerMod ...

  6. Android 的 DatePicker、TimePicker或NumberPicker

    布局文件加上这个就可以,去除日期选择器.时间选择器或数值选择器的可编辑状态. android:descendantFocusability="blocksDescendants" ...

  7. VUE AntDesign DatePicker设置默认显示当前日期

    1:main.js中引入依赖 import Vue from "vue"; import { DatePicker } from 'ant-design-vue'; import ...

  8. 完整显示当前日期和时间的JS代码(2007年2月25日星期日正午12:42:48)

    代码演示效果为“2007年2月25日星期日正午12:42:48”. 使用方法:将下面的JS代码放到你想要显示的页面中(支持HTML页面),然后在你想要显示时间的位置插入下面的代码即可 <div ...

  9. 完整显示当前日期和时间的JS代码

    代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- ...

随机推荐

  1. 对象的操作-javascript

    任务要求: 每单机一下div,边框各加5px,且会红色跟黑色相互交替. 学习总结: 主要是学习到了parseInt这个函数.主要是将本身设置好的长宽然后再加5像素的时候需要用到该函数.如果直接加不使用 ...

  2. 适配器模式和外观模式(head first设计模式——6)

    为什么要把适配器模式和外观模式放在同一篇文章中,主要是其相对前面的几个模式来讲会简单些并且具有相似之处.下面就分别通过例子来看理解一下两种模式,然后再进行对其进行比较. 一.适配器模式 1.1适配器模 ...

  3. 服务器响应慢的分析与解决(Linux服务器)

    一.分析思路 1.排除本机自身原因 2.服务器性能分析 3.项目本身分析(不详细说) 4.虚拟机分析 5.数据库分析 二.详细分析方法 1.排除本机自身原因 可以使用站长工具测试网站速度. 2.服务器 ...

  4. 一、drupal 安装汉化

    下载 Drupal 7: 下载语言包文件:到 http://localize.drupal.org/translate/languages/zh-hans 页面下载对应版本的语言包(.po文件) 安装 ...

  5. [LintCode]转换字符串到整数

    问题描述: 实现atoi这个函数,将一个字符串转换为整数.如果没有合法的整数,返回0.如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-21 ...

  6. MySQL命令学习(二)

    (13)where字句操作符 =            等于 <>          不等于 !=           不等于 <            小于 >        ...

  7. PHP无限极分类 - 2 - 无限极评论

    参考上一节: 结合ZUI前端框架,制作的无限极评论列表: 项目目录: 代码: <!DOCTYPE html> <html lang="en"> <he ...

  8. golang 数组以及slice切片

    老虞学GoLang笔记-数组和切片   数组 Arrays 数组是内置(build-in)类型,是一组同类型数据的集合,它是值类型,通过从0开始的下标索引访问元素值.在初始化后长度是固定的,无法修改其 ...

  9. 用实现ajax读博客rss示例代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  10. 几种常见的DIV边框样式

    <html> <head> <title>边框样式</title> </head> <body> <p style=bor ...