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;
}
}
}
源码下载