Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法

日期、时间选择器(DatePicker和TimePicker)的功能和用法

DatePicker和TimePicker是两个比较常用的控件,它们都从FrameLayout派生而来,其中DatePicker用于选择日期、TimePicker用于选择时间。

DatePicker和TimePicker在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期、时间;开发者可以通过为DatePicker添加OnDateChangedListener、为TimePicker添加OnTimeChangedListener监听器进行监听来获取用户选择的日期和时间。

DatePicker(日期选择器)


结构:

<pre name="code" class="html">java.lang.Object
   ? 	android.view.View
  	   ? 	android.view.ViewGroup
  	  	   ? 	android.widget.FrameLayout
  	  	  	   ? 	android.widget.DatePicker

概述:

一个选择年月日的日历布局视图,对于对话框视图,参见 DatePickerDialog.

公共方法:


Public Methods


int


getDayOfMonth()

获取选择的天数


int


getMonth()

获取选择的月份


int


getYear()

获取选择的年份


void


init(int
year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)

初始化年月日


void


setEnabled(boolean
enabled)

设置视图的启用状态


void


updateDate(int
year, int monthOfYear, int dayOfMonth)

更新日期

DatePicker支持的XML属性:


XML属性


说明


android:calendarViewShown


设置该日期选择器是否显示ClendarView组件


android:endYear


设置该日期选择器允许选择的最后一年


android:startYear


设置该日期选择器允许选择的第一一年


android:maxDate


设置该日期选择器允许选择的最大日期。以mm/dd/yyyy格式指定最大日期


android:minDate


设置该日期选择器允许选择的最小日期。以mm/dd/yyyy格式指定最小日期


android:spinnersShown


设置该日期选择器是否显示Spinner日期选择组件

TimePicker(时间选择器)


结构:

<pre name="code" class="html">ava.lang.Object
   ? 	android.view.View
  	   ? 	android.view.ViewGroup
  	  	   ? 	android.widget.FrameLayout
  	  	  	   ? 	android.widget.TimePicker

概述:

用于选择一天中时间的视图,支持 24小时及上午/下午模式。小时,分钟及上午/下午(如果可用)都可以用垂直滚动条来控制。用键盘来输入小时。两个数的小时数可以通过输入两个数字来实现,例如在一定时间内输入‘1’和‘2’即选择了12点。分钟能显示输入的单个数字。在AM/PM模式下,用户可以输入‘a‘, ‘A"或 ‘p‘, ‘P‘来选取。对于对话框视图,参见TimePickerDialog。

公共方法:


Public Methods


int


getBaseline()

返回窗口空间的文本基准线到其顶边界的偏移量。如果这个部件不支持基准线对齐,

这个方法返回-1/。


Integer


getCurrentHour()

获取当前时间的小时部分。 返回值当前小时(0-23)


Integer


getCurrentMinute()

获取当前时间的分钟部分


boolean


is24HourView()

获取当前系统设置是否是24小时制。 如果是24小时制返回true,否则返回false。


void


setCurrentHour(Integer currentHour)

设置当前小时


void


setCurrentMinute(Integer currentMinute)

设置当前分钟(0-59)


void


setEnabled(boolean
enabled)

设置可用的视图状态。可用的视图状态的解释在子类中改变。


void


setIs24HourView(Boolean is24HourView)

设置是24小时还是上午/下午制


void


setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)

设置时间调整事件的回调函数。

应用实例



选择日期和时间:

运行效果图:

程序代码:

package com.jph.choosedae;

import java.util.Calendar;
import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
import android.widget.Toast;

/**
 * Description:
 * <br/>选择日期时间
 * <br/>本实例通过DatePicker(时间选择器)和
 * <br/>TimePicker(日期选择器)来提供用户选择日期和时间
 * <br/>为了获取选择的日期程序为DatePicker注册了OnDateChangedListener
 * <br/>监听器,为了获取选择的时间程序为TimePicker注册OnTimeChangedListener
 * <br/>监听器
 * @author jph
 * Date:2014.20.57
 */
public class ChooseDate extends Activity
{
	// 定义5个记录当前时间的变量
	private int year;
	private int month;
	private int day;
	private int hour;
	private int minute;

	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		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 arg0, int year
					, int month, int day)
			{
				ChooseDate.this.year = year;
				ChooseDate.this.month = month;
				ChooseDate.this.day = day;
				// 显示当前日期、时间
				showDate(year, month, day, hour, minute);
				Toast.makeText(ChooseDate.this,"您选择的日期:"+year+"年  "
				+month+"月  "+day+"日", Toast.LENGTH_SHORT).show();
			}
		});
		// 为TimePicker指定监听器
		timePicker.setOnTimeChangedListener(new OnTimeChangedListener()
		{

			@Override
			public void onTimeChanged(TimePicker view
					, int hourOfDay, int minute)
			{
				ChooseDate.this.hour = hourOfDay;
				ChooseDate.this.minute = minute;
				// 显示当前日期、时间
				showDate(year, month, day, hour, minute);
				Toast.makeText(ChooseDate.this,"您选择的时间:"+hourOfDay+"时  "
						+minute+"分", Toast.LENGTH_SHORT).show();
//
			}
		});
	}

	// 定义在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 + "分");
	}
}

xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	>

<!-- 显示用户输入日期、时间的控件 -->
<EditText android:id="@+id/show"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:editable="false"
	android:cursorVisible="false"
	/>
<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="2050"
	android:calendarViewShown="true"
	android:spinnersShown="true"
	/>
<!-- 定义一个TimePicker组件 -->
<TimePicker android:id="@+id/timePicker"
	android:layout_width="wrap_content"
	android:layout_height="100dp"
	android:layout_gravity="center_horizontal"
	/>
</LinearLayout>

Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法

时间: 2024-10-13 21:38:01

Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法的相关文章

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

利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器. Dialog的Content布局文件(date_time_dialog.xml): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android 开发笔记___时间选择器---timePicker

像datepicker一样,也有timepicker. 同样有timepickerdialog 所用到的方法还是一样,监听时间选择器的变化. 1 package com.example.alimjan.hello_world; 2 3 import java.util.Calendar; 4 5 /** 6 * Created by alimjan on 7/15/2017. 7 */ 8 9 import android.app.TimePickerDialog; 10 import andr

时间选择器:DatePicker 和TimePicker

1.介绍DatePicker和TimePicker两种实现动态输入日期和时间的功能 2.介绍DataPickerDialog和TimePickerDialog两种实现动态输入日期和时间的对话框 3,介绍两组针对监测日期时间改变的监听器包含: OnDataChangedListener和OnTimeChangedListener() OnDataSetListener和OnTimeSetListener() >当用户更改了DataPicker里的年,月,日时,将触发OnDataChangedLis

Android开发系列(二十一):Spinner的功能和用法以及实现列表选择框

Spinner是一个列表选择框,相当于弹出一个菜单供用户进行选择. Spinner继承AdapterView Spinnet支持的XML的属性: android:entries:使用数组资源设置该下拉列表框的列表项目 android:popupBackground:设置下拉列表框的背景色 (一般这两个比较常用一点) 用Spinner用两种方法: 第一.已经确定下拉列表里的列表项,只要为Spinner指定android:entries属性就可以实现Spinner. 第二.如果程序需要在运行时动态地

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

本文主要讲两个内容:1.如何将DatePicker和TimePicker放在一个dialog里面:2.改变他们的宽度: 问题1:其实现思路就是自定义一个Dialog,然后往里面同时放入DatePicker和TimePicker,直接贴代码: date_time_picker.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://s

开发路程(11): 日期时间选择器datetimepicker

在做项目中,往往会遇到需要用户输入2014-07-19 09:55:53这样的格式的数据.就是典型的年月日时分秒这样的格式.这个时候,使用datetimepicker会比较简单. DateTimePicket jQuery 插件:使用此插件非强制性地将 datetimepicker. datepicker 或 timepicker 下拉列表添加到您的窗体.就是这样.很好看吧. 添加jquery.datetimepicker和datetimepicker.css到您的页面: 1 <link rel

android日期时间选择器

android原生的日期时间控件,因为是原生的总有其满足不了我们需求的时候,Android 手机版本那么多,用户弹出来的控件五花八门.因为项目需要,在网上找了一 些demo看了看,感觉有些写的很好,很有借鉴意义,特此记下,方便后来者. 先看下可以达到的效果图,是不是正好需要的呢: 具体细节不再赘述,可以到源码里查看,最后会贴上源码下载地址或者可以留言. 源码地址 https://download.csdn.net/download/heishuai123/10453741 原文地址:https:

Android中关于日期时间与时区的使用总结

原文引自:http://www.2cto.com/kf/201312/266908.html 在开发Android的过程中,出现过几次由于日期时间导致的问题,而且主要是由于时区的原因导致,所以一直想总结一下,形成一个良好的开发规范. 一.Unix时间戳 Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方法,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数.Unix时间戳不仅被

Android界面编程——日期时间组件(五)

Android界面编程--日期时间组件 2.6日期时间组件 2.6.1 TextClock 以文本的方式显示系统日期和时间,可以自定义显示格式,是 Android4.2(对应API Level 17)提供的新特性. TextClock有两种格式设置方式: 1. 在24小时模式: 属性:android:format24Hour 方法:set Format24Hour(CharSequence) 2. 在12小时模式: 属性:android: format12Hour 方法:set Format12