日期、时间选择器(DatePicker和TimePicker)的功能与用法
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)的功能与用法的更多相关文章
- Android中实现日期时间选择器(DatePicker和TimePicker)
		
利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器. Dialog的Content布局文件(date_time_dialog.x ...
 - 日期 时间选择器(DatePicker和TimePicker)实现用户选择
		
日期和时间 作者的设计TimePicker时,大小分布不合理,我调整宽度为match-parent高度为wrap-parent就可以了. public class MainActivity exten ...
 - Android日期时间选择器DatePicker、TimePicker日期时间改变事件响应(Android学习笔记)
		
activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...
 - 第32讲 UI组件之 时间日期控件DatePicker和TimePicker
		
第32讲 UI组件之 时间日期控件DatePicker和TimePicker 在Android中,时间日期控件相对来说还是比较丰富的.其中, DatePicker用来实现日期输入设置, Time ...
 - flatpickr功能强大的日期时间选择器插件
		
flatpickr日期时间选择器支持移动手机,提供多种内置的主题效果,并且提供对中文的支持.它的特点还有: 使用SVG作为界面的图标. 兼容jQuery. 支持对各种日期格式的解析. 轻量级,高性能, ...
 - 24款最好的jQuery日期时间选择器插件
		
如果你正在创建一个网络表单,有很多事情你需要在你的应用程序中使用.有时您需要特别的输入,从用户的日期和时间,如发票日期,生日,交货时间,或任何其他此类信息.如果你有这样的需要,可以极大地从动态的jQu ...
 - Android日期时间选择器实现以及自定义大小
		
本文主要讲两个内容:1.如何将DatePicker和TimePicker放在一个dialog里面:2.改变他们的宽度: 问题1:其实现思路就是自定义一个Dialog,然后往里面同时放入DatePick ...
 - Bootstrap-datepicker日期时间选择器的简单使用
		
日期时间选择器 目前,bootstrap有两种日历.datepicker和datetimepicker,后者是前者的拓展. Bootstrap日期和时间组件: 使用示例: 从左到右依次是十年视图.年视 ...
 - 日期时间选择器插件flatpickr
		
前言:在网页上需要输入时间的时候,我们可以用HTML5的inputl中的date类型.但是如下入所示,有些浏览器不支持.flatpickr这个小插件可以解决这个问题. 1.flatpickr日期时间选 ...
 - 移动端lCalendar纯原生js日期时间选择器
		
网上找过很多的移动端基于zepto或jquery的日期选择器,在实际产品中也用过一两种,觉得都不太尽如人意,后来果断选择了H5自己的日期input表单,觉得还可以,至少不用引用第三方插件了,性能也不错 ...
 
随机推荐
- arm参数传递和返回值
			
参数按先后顺序传到 r0 ~ r3 如果不够4个,先传r0,以此类推 如果多于4个,入栈 返回值放在 r0中
 - Qt5:随窗口大小变化背景图片自动缩放的实现
			
在窗口程序中,当我们改变窗口大小的时候,背景图片通常会岁窗口大小变化而缩放 然而,在我们写的窗口程序中,设置背景图片后,如果缩放大小,会看到背景图片并不会随之缩放, 应为这需要特殊处理,一般常用的方法 ...
 - java中的序列化流和反序列化流
			
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px SimSun; color: #4e9072 } 序列化流:把对象按照流一样的方式存入文本文件 ...
 - 关于HTTP_CLIENT_IP,HTTP_X_FORWAR
			
HTTP_CLIENT_IP:可通过http头伪造HTTP_X_FORWARDED_FOR:可通过http头伪造REMOTE_ADDR:可能是用户真实IP也可能是代理IP 服务端获取IP地址 http ...
 - nginx的RTMP协议服务器
			
nginx的RTMP协议服务器 by ahuner 通过以下的配置,可以使nginx接收RTMP流,并在web上播放实时视频. 1.openssl安装 nginx需要http_ssl_module模块 ...
 - LVS详解
			
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
 - Java笔记——XML解析
			
import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import ja ...
 - Linux 分区和目录解析
			
转自:http://www.cnblogs.com/apprentice89/archive/2012/12/17/2821332.html 计算机中存放信息的主要的存储设备就是硬 盘,但是硬盘不能直 ...
 - Sublime Text 2快捷键大全
			
作者:zccst 2015-04-13 Sublime 插件安装 http://www.cnblogs.com/jingwhale/p/4421021.html 2014-09-17 Sublime ...
 - app间互相启动及传参数
			
http://blog.sina.com.cn/s/blog_13bc6705b0102wmc5.html http://blog.csdn.net/iefreer/article/details/8 ...