您的位置:首页 > 移动开发 > Android开发

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

2015-01-15 16:09 801 查看
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;
		}
	}
}
源码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: