1、日期设置控件:DatePickerDialog
2、时间设置控件:TimePickerDialog
实例代码
1、页面添加两个Button,单击分别显示日期设置控件和时间设置控件,还是有TextView控件,用于显示设置后的系统时间
[代码] main.xml
01 <?xml version="1.0" encoding="utf-8"?>
02 <LinearLayoutxmlns:Android="http://schemas.android.com/apk/res/android"
03Android:orientation="vertical"
04Android:layout_width="fill_parent"
05Android:layout_height="fill_parent"
06>
07 <TextViewAndroid:id="@+id/dateAndTime"
08Android:layout_width="fill_parent"
09Android:layout_height="wrap_content"
10Android:text="@string/hello"
11/>
12 <ButtonAndroid:id="@+id/setDate"
13Android:layout_width="fill_parent"
14Android:layout_height="wrap_content"
15Android:text="Set the Date"></Button>
16 <ButtonAndroid:id="@+id/setTime"
17Android:layout_width="fill_parent"
18Android:layout_height="wrap_content"
19Android:text="Set the Time"></Button>
20 </LinearLayout>
[代码] ChronoDemo.java
001 package yyl.Android;
002
003 import java.text.DateFormat;
004 import java.util.Calendar;
005 import java.util.Locale;
006
007 import Android.app.Activity;
008 import Android.app.DatePickerDialog;
009 import Android.app.TimePickerDialog;
010 import Android.os.Bundle;
011 import Android.view.View;
012 import Android.widget.Button;
013 import Android.widget.DatePicker;
014 import Android.widget.TextView;
015 import Android.widget.TimePicker;
016
017 public class ChronoDemo extends Activity {
018//获取日期格式器对象
019DateFormat fmtDateAndTime = DateFormat.getDateTimeInstance();
020//定义一个TextView控件对象
021TextView dateAndTimeLabel = null;
022//获取一个日历对象
023Calendar dateAndTime = Calendar.getInstance(Locale.CHINA);
024
025
026//当点击DatePickerDialog控件的设置按钮时,调用该方法
027DatePickerDialog.OnDateSetListener d = newDatePickerDialog.OnDateSetListener()
028{
029@Override
030public void onDateSet(DatePicker view, int year, intmonthOfYear,
031int dayOfMonth) {
032//修改日历控件的年,月,日
033//这里的year,monthOfYear,dayOfMonth的值与DatePickerDialog控件设置的最新值一致
034dateAndTime.set(Calendar.YEAR, year);
035dateAndTime.set(Calendar.MONTH, monthOfYear);
036dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);
037//将页面TextView的显示更新为最新时间
038updateLabel();
039}
040};
041
042
043
044TimePickerDialog.OnTimeSetListener t = newTimePickerDialog.OnTimeSetListener() {
045
046//同DatePickerDialog控件
047@Override
048public void onTimeSet(TimePicker view, int hourOfDay, intminute) {
049dateAndTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
050dateAndTime.set(Calendar.MINUTE, minute);
051updateLabel();
052
053}
054};
055
056@Override
057public void onCreate(Bundle savedInstanceState) {
058super.onCreate(savedInstanceState);
059setContentView(R.layout.main);
060
061//得到页面设定日期的按钮控件对象
062Button dateBtn = (Button)findViewById(R.id.setDate);
063//设置按钮的点击事件监听器
064dateBtn.setOnClickListener(new View.OnClickListener() {
065
066@Override
067public void onClick(View v) {
068//生成一个DatePickerDialog对象,并显示。显示的DatePickerDialog控件可以选择年月日,并设置
069new DatePickerDialog(ChronoDemo.this,
070d,
071dateAndTime.get(Calendar.YEAR),
072dateAndTime.get(Calendar.MONTH),
073dateAndTime.get(Calendar.DAY_OF_MONTH)).show();
074}
075});
076
077Button timeBtn = (Button)findViewById(R.id.setTime);
078timeBtn.setOnClickListener(new View.OnClickListener() {
079
080//同上原理
081@Override
082public void onClick(View v) {
083new TimePickerDialog(ChronoDemo.this,
084t,
085dateAndTime.get(Calendar.HOUR_OF_DAY),
086dateAndTime.get(Calendar.MINUTE),
087true).show();
088
089}
090});
091
092dateAndTimeLabel=(TextView)findViewById(R.id.dateAndTime);
093
094updateLabel();
095}
096
097//更新页面TextView的方法
098private void updateLabel() {
099dateAndTimeLabel.setText(fmtDateAndTime
100.format(dateAndTime.getTime()));
101}
102 }