课程内容
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. 分享JQuery动画插件Velocity.js的六种列表加载特效

    分享JQuery动画插件Velocity.js的六种列表加载特效.在这款实例中给中六种不同的列表加载效果.分别为从上飞入.从右侧飞入.从左侧飞入.和渐显.一起看下效果图: 在线预览   源码下载 实现 ...

  2. 浅析js前端发展及mvvm的选型

    最近终于下定决心学点前端的东西,然而各种框架,让人眼花缭乱. 先总结一下js前端的发展史 1.刀耕火种,原始时代 这个时候用DOM原生API来操html元素,估计getElementBy之类的函数满天 ...

  3. 使用System.IO.Combine(string path1, string path2, string path3)四个参数的重载函数提示`System.IO.Path.Combine(string, string, string, string)' is inaccessible due to its protection level

    今天用Unity5.5.1开发提取Assets目录的模块,使用时采用System.IO.Path.Combine(string, string, string, string)函数进行路径生成 明明是 ...

  4. Java项目中如何扩展第三方jar包中的类?

    有些时候你对第三方得到jar包中的类并不是很满意,想根据实际情况做一些扩展.如果说第三方的jar包已经提供了一些可扩展的类,比如提供了Interceptor,Filter或者其他的类,那么使用原生的比 ...

  5. maven_nexus3私服搭建

    [maven_nexus3私服搭建] # 00.安装环境说明# (1)Windows7 64位# (2)JDK1.8 64位# (3)Sonatype Nexus Repository OSS 3.1 ...

  6. Android——实现欢迎界面的自动跳转(转)

    Android实现欢迎界面的自动跳转,就是打开某一个安卓手机应用,出现的欢迎界面停留几秒钟,自动进入应用程序的主界面.在网上看到很多种实现办法,但是感觉这种方法还是比较简单的. 在onCreate里设 ...

  7. 内网环境NTP服务及时间同步(CentOS6.x)配置和部署

    目标环境,5台linux centos 6.3, 一台作为NTPD服务与外部公共NTP服务同步时间,同时作为内网的NTPD服务器,其他机器与这台服务做时间同步.  服务器IP 角色   说明 同步方式 ...

  8. 实现字符串转化为整数函数atoi()函数

    函数原型: int atoi(const char *nptr); 函数说明: 参数nptr字符串,如果第一个非空格字符存在,并且,如果不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数 ...

  9. SQL计算表的列数

    select count(syscolumns.name) from syscolumns , sysobjects where syscolumns.id = sysobjects.id and s ...

  10. 后台测试常需要的htm样式

    <form name="form" method="post" action="#"> <input type=" ...