DatePicker和TimePicker是两个比较易用的控件,它们都从FrameLayout派生而来,其中DatePicker供用户选择日期;而TimePicker则供用户选择时间。

DatePicker和TimePicker在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期、时间;如果程序需要获取用户选择的日期、时间,则可通过为DatePicker添加OnDateChangedListener进行监听、为TimePicker添加OnTimerChangedListener进行监听来实现。

 实例:用户选择日期、时间

为了让用户能选择日期,本应用需要同时使用DatePicker和TimePicker两个组件,并为它们分别绑定监听器。下面是本应用的界面布局。

布局文件如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="请选择买本书的具体时间"/>
<!-- 定义一个DatePicker组件 -->
<DatePicker android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="200dp"
android:layout_gravity="center_horizontal"
android:startYear="2000"
android:endYear="2014"
android:calendarViewShown="true"
android:spinnersShown="true"
/>
<!-- 定义一个TimerPicker组件 -->
<TimePicker android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_gravity="center_horizontal"/>
<!-- 显示用户输入日期、时间的控件 -->
<EditText android:id="@+id/show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
android:cursorVisible="false"/>
</LinearLayout>

上面的界面布局中添加了一个DatePicker、一个TimePicker,这两个组件供用户选择日期、时间。除此之外,上面的界面布局中还包含一个EditText,该组件用于显示用户选择的日期时间。

主程序后台代码如下:

package org.crazyit.helloworld;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener; public class DataPickerTest extends Activity {
//定义5个记录当前时间的变量
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.data_picker_test);
DatePicker datePicker=(DatePicker)findViewById(R.id.datePicker);
TimePicker timePicker=(TimePicker)findViewById(R.id.timePicker);
//获取当前的年、月、日 、小时、分钟
Calendar c=Calendar.getInstance();
year=c.get(Calendar.YEAR);
month=c.get(Calendar.MONTH);
day=c.get(Calendar.DAY_OF_MONTH);
hour=c.get(Calendar.HOUR);
minute=c.get(Calendar.MINUTE);
//初始化DatePicker组件,初始化时指定监听器
datePicker.init(year, month, day,new OnDateChangedListener(){ @Override
public void onDateChanged(DatePicker view, int year,
int month, int day) {
// TODO Auto-generated method stub
DataPickerTest.this.year=year;
DataPickerTest.this.month=month;
DataPickerTest.this.day=day;
//显示当期日期、时间
showDate(year,month,day,hour,minute);
} }); //为TimePicker指定监听器
timePicker.setOnTimeChangedListener(new OnTimeChangedListener(){

@Override
public void onTimeChanged(TimePicker view, int hour, int minute) {
// TODO Auto-generated method stub
DataPickerTest.this.hour=hour;
DataPickerTest.this.minute=minute;
//显示当前日期、时间
showDate(year,month,day,hour,minute);
} }); } //定义在EditText中显示当前日期、时间的方法
private void showDate(int year,int month,int day,int hour,int minute)
{
EditText show=(EditText)findViewById(R.id.show);
show.setText("您的购买日期为:"+year+"年"+(month+1)+"月"+day+"日 "+hour
+"时"+minute+"分"); } @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.data_picker_test, menu);
return true;
} }

上面的程序中两行粗体字代码就是分别为DatePicker、TimerPicker绑定事件监听器的代码,DatePicker和TimePicker绑定事件监听器的方式略有不同,但本质还是一样的。一旦为DatePicker和TimePicker绑定了监听器,当用户通过这两个组件来选择日期、时间时,监听器被触发——监听器负责使用EditText来显示用户选择的日期、时间。

运行上面的程序将看到如图所示的效果:

日期、时间选择器(DatePicker和TimePicker)的功能与用法的更多相关文章

  1. Android中实现日期时间选择器(DatePicker和TimePicker)

    利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器. Dialog的Content布局文件(date_time_dialog.x ...

  2. 日期 时间选择器(DatePicker和TimePicker)实现用户选择

    日期和时间 作者的设计TimePicker时,大小分布不合理,我调整宽度为match-parent高度为wrap-parent就可以了. public class MainActivity exten ...

  3. Android日期时间选择器DatePicker、TimePicker日期时间改变事件响应(Android学习笔记)

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  4. 第32讲 UI组件之 时间日期控件DatePicker和TimePicker

    第32讲 UI组件之 时间日期控件DatePicker和TimePicker 在Android中,时间日期控件相对来说还是比较丰富的.其中, DatePicker用来实现日期输入设置,    Time ...

  5. flatpickr功能强大的日期时间选择器插件

    flatpickr日期时间选择器支持移动手机,提供多种内置的主题效果,并且提供对中文的支持.它的特点还有: 使用SVG作为界面的图标. 兼容jQuery. 支持对各种日期格式的解析. 轻量级,高性能, ...

  6. 24款最好的jQuery日期时间选择器插件

    如果你正在创建一个网络表单,有很多事情你需要在你的应用程序中使用.有时您需要特别的输入,从用户的日期和时间,如发票日期,生日,交货时间,或任何其他此类信息.如果你有这样的需要,可以极大地从动态的jQu ...

  7. Android日期时间选择器实现以及自定义大小

    本文主要讲两个内容:1.如何将DatePicker和TimePicker放在一个dialog里面:2.改变他们的宽度: 问题1:其实现思路就是自定义一个Dialog,然后往里面同时放入DatePick ...

  8. Bootstrap-datepicker日期时间选择器的简单使用

    日期时间选择器 目前,bootstrap有两种日历.datepicker和datetimepicker,后者是前者的拓展. Bootstrap日期和时间组件: 使用示例: 从左到右依次是十年视图.年视 ...

  9. 日期时间选择器插件flatpickr

    前言:在网页上需要输入时间的时候,我们可以用HTML5的inputl中的date类型.但是如下入所示,有些浏览器不支持.flatpickr这个小插件可以解决这个问题. 1.flatpickr日期时间选 ...

  10. 移动端lCalendar纯原生js日期时间选择器

    网上找过很多的移动端基于zepto或jquery的日期选择器,在实际产品中也用过一两种,觉得都不太尽如人意,后来果断选择了H5自己的日期input表单,觉得还可以,至少不用引用第三方插件了,性能也不错 ...

随机推荐

  1. jdb 调试

    C:\Users\Reverse>adb shell am start -D -n lwf.lc.pncdd/lwf.lc.pncdd.MainC 查看内存情况: cat /proc/N/map ...

  2. Linux 互斥锁的实现原理(pthread_mutex_t)

    本文参考--http://www.bitscn.com/os/linux/201608/725217.html 和http://blog.csdn.net/jianchaolv/article/det ...

  3. java fx example

    http://www.java2s.com/Tutorials/Java/JavaFX/1500__JavaFX_WebEngine.htm

  4. C语言5种存储区域

    C语言5种存储区域 转发至:http://www.mamicode.com/info-detail-927635.html 系统为了管理内存 把内存划分了几个区域 1> 栈区 栈区之中的数据在栈 ...

  5. JavaScript运行原理解析

    原文:1.http://blog.csdn.net/liaodehong/article/details/50488098 2.Stack的三种含义 (阮一峰) 3. http://lib.csdn. ...

  6. JS监听input框的回车事件、属性值改变事件

    一.介绍 在程序猿门的工作中,经常会遇见一些表单数据的提交,对于有表单的东西而言,input输入框是非常常见的,所以对于一些input的基本事件,我们需要去掌握 二.input的监听enter事件 比 ...

  7. git 与 github基本使用

    这里只对git 与 github的基本使用介绍,对于简单的步骤不做详细的说明,可以在网上搜索 一.git与github的安装与链接 1.git 安装:百度搜索"git",下载安装即 ...

  8. bootstrap建立响应式网站——tab选项卡

    1.bootstrap给我们提供了标签页 细细看了一下bootstrap的标签页源码,对tab选项卡有了更深的理解.其实说来也简单,以前自己写js和css时没有意识到整体的划分.就是分为两部分:一部分 ...

  9. 二分查找javascript

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. STM32 对内部FLASH读写接口函数(转)

    源:STM32 对内部FLASH读写接口函数 因为要用内部FLASH代替外部EEPROM,把参数放在STM32的0x08000000+320K处,其中20K是bootloader,300K是应用程序. ...