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

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

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

    DatePickerTimePicker在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)

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

 

应用实例


选择日期和时间:

运行效果图:

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

程序代码:

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>



  • 18
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
通过这个例子我们主要是学习AndroidDatePickerDialog日期选择器组件、TimePickerDialog时间选择组件的用法,里面给出了两个演示,单击对应的按钮可演示具体效果。DatePickerDialog组件、TimePickerDialog组件的具体用法写入了两个按钮监听事件,以下是部分代码段:   case DATE_DIALOG://生成日期对话框的代码    c=Calendar.getInstance();//获取日期对象    dialog=new DatePickerDialog(//创建DatePickerDialog对象    this,    new DatePickerDialog.OnDateSetListener(){//创建OnDateSetListener监听   @Override   public void onDateSet(DatePicker dp, int year, int month,int dayOfMonth) {    EditText et = (EditText)findViewById(R.id.et);    et.setText("您选择了:" year "年" month "月" dayOfMonth "日");   }   },   c.get(Calendar.YEAR),//传入年份   c.get(Calendar.MONTH), //传入月份   c.get(Calendar.DAY_OF_MONTH) //传入天数   case TIME_DIALOG://生成时间对话框的代码   c=Calendar.getInstance();//获取日期对象   dialog=new TimePickerDialog(//创建TimePickerDialog对象   this,   new TimePickerDialog.OnTimeSetListener(){ //创建OnTimeSetListener监听   @Override   public void onTimeSet(TimePicker tp, int hourOfDay, int minute) {    EditText et = (EditText)findViewById(R.id.et);    et.setText("您选择了:" hourOfDay "时" minute "分");//设置EditText控件的属性   }   },   c.get(Calendar.HOUR_OF_DAY),//传入当前小时数   c.get(Calendar.MINUTE), //传入当前分钟数   false

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值