Android日期时间选择控件使用详解

本文介绍Android中日期和时间选择控件的两种使用形式:布局文件中的控件和通过Java代码实现的选择控件。具体展示了如何在布局中嵌入日期和时间选择控件,并通过Java代码实现对日期和时间的修改。

Android中的日期时间选择控件主要分为两种,一种是嵌入到Activity中,另一种是弹出框的形式。下面直接使用一个小例子介绍一下日期和时间选择控件的两种使用形式。

1、布局文件中的日期时间选择控件,用于第一种形式使用。两个按钮用于弹出日期和时间选择控件。

<RelativeLayout 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" >

    <TimePicker
        android:id="@+id/timePicker1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/datePicker1"
        android:layout_marginTop="14dp" />

    <DatePicker
        android:id="@+id/datePicker1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="doClick"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/timePicker1"
        android:text="弹出日期选择控件" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="doClick"
        android:layout_below="@+id/timePicker1"
        android:layout_toRightOf="@+id/button1"
        android:text="弹出时间选择控件" />

</RelativeLayout>
2、使用Java代码实现日期和时间的修改
package com.cx.testdemo;

import java.util.Calendar;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;

public class MainActivity extends Activity{
	private DatePicker datePicker;
	private TimePicker timePicker;
	//用于获取当前时间
	private Calendar cal;
	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);
		
		//获取日历对象
		cal = Calendar.getInstance();
		//获取年月日时分秒的信息
		year = cal.get(Calendar.YEAR);
		month = cal.get(Calendar.MONTH) + 1;
		day = cal.get(Calendar.DAY_OF_MONTH);
		hour = cal.get(Calendar.HOUR_OF_DAY);
		minute = cal.get(Calendar.MINUTE);
		setTitle(year + "-" + month + "-" + day + " " + hour + ":" + minute);
		
		datePicker = (DatePicker) findViewById(R.id.datePicker1);
		timePicker =  (TimePicker) findViewById(R.id.timePicker1);
		
		//datePicker初始化,此处月份不做加1处理
		datePicker.init(year, cal.get(Calendar.MONTH), day, new OnDateChangedListener() {
			
			@Override
			public void onDateChanged(DatePicker view, int year, int monthOfYear,
					int dayOfMonth) {
				// TODO Auto-generated method stub
				setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
			}
		});
		
		timePicker.setOnTimeChangedListener(new OnTimeChangedListener(){

			@Override
			public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
				// TODO Auto-generated method stub
				setTitle(hourOfDay + ":" + minute);
			}
		});
	}
	
	public void doClick(View v){
		switch (v.getId()) {
		case R.id.button1:
			//弹出类型日期选择器实现
			new DatePickerDialog(this, new OnDateSetListener() {
	
				@Override
				public void onDateSet(DatePicker view, int year, int monthOfYear,
						int dayOfMonth) {
					// TODO Auto-generated method stub
					setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
				}
			}, year, cal.get(Calendar.MONTH), day).show();
			break;

		case R.id.button2:
			//弹出类型时间选择器实现,最后一个参数为是否使用24小时制
			new TimePickerDialog(this, new OnTimeSetListener() {
				
				@Override
				public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
					// TODO Auto-generated method stub
					setTitle(hourOfDay + ":" + minute);
				}
			}, hour, minute, false).show();
			break;
		}
	}
}
源码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c小旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值