天天看點

DatePicker,TimePicker,DatePickerDialog以及TimePickerDialog的使用

注意事項:在使用DatePickerDialog和TimePickerDialog的時候必須show出來,否則不顯示。

代碼如下:MainActivity.java

package com.yql.datetimepicker;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.view.Menu;
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 dp;
	private TimePicker tp;
	private Calendar cal;
	private int year;
	private int month;
	private int day;
	private int hour;
	private int minute;
	private int second;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		dp = (DatePicker) findViewById(R.id.datePicker1);
		tp = (TimePicker) findViewById(R.id.timePicker1);
		Calendar cal = Calendar.getInstance();
		year = cal.get(Calendar.YEAR);
		month = cal.get(Calendar.MONTH)+1;
		day = cal.get(Calendar.DAY_OF_MONTH);
		//Calendar.HOUR_OF_DAY是24小時制;Calendar.HOUR是12小時制
		hour = cal.get(Calendar.HOUR_OF_DAY);
		minute = cal.get(Calendar.MINUTE);
		second = cal.get(Calendar.SECOND);
		//setTitle(year+"-"+month+"-"+day+"-"+hour+"-"+minute+"-"+second);
		//設定控件的初始化時間
		dp.init(year, cal.get(Calendar.MONTH), day, new OnDateChangedListener() {			
			@Override
			public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {				
				//setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
			}
		});
		tp.setOnTimeChangedListener(new OnTimeChangedListener() {
			
			@Override
			public void onTimeChanged(TimePicker view, int hour, int minute) {				
				setTitle(hour+":"+minute);
			}
		});
		/**
		 * callBack:選擇出發的函數
		 * year:控件初始化年
		 * monthOfYear:控件初始化月
		 * dayOfMonth:控件初始化天
		 */
		/*new DatePickerDialog(this, new OnDateSetListener() {			
			@Override
			public void onDateSet(DatePicker view , int year, int monthOfYear, int dayOfMonth) {
				setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);			
			}
		}, year, cal.get(Calendar.MONTH), day).show();*/
		
		new TimePickerDialog(this, new OnTimeSetListener() {			
			@Override
			public void onTimeSet(TimePicker view, int hour, int minute) {
				setTitle(hour+":"+minute);
			}
		}, hour, minute, true).show();
	}

}
           

布局檔案main.xml

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

    <TimePicker
        android:id="@+id/timePicker1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

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

</LinearLayout>
           

繼續閱讀