素材巴巴 > 程序开发 >

Android中日期和时间控件的使用

程序开发 2023-09-03 06:34:09

            本文主要讲述Android中的日期控件和时间控件的使用,以一个Demo的例子来展示日期和时间控件的使用,先看下如下效果图:

从效果图中可以看到该Demo是通过单击【选择日期】按钮和【选择时间】按钮弹出日期或者时间的对话框,然后设置日期或者时间,设置完成后会在文本框中显示设置的日期或时间值。

【1】Demo程序框架图:

【2】布局文件 res/layout/main.xml 源码:


        

【3】包com.andyidea.calenderdemo下MainActivity.java源码:

package com.andyidea.calenderdemo;import java.util.Calendar;import android.app.Activity;
 import android.app.DatePickerDialog;
 import android.app.Dialog;
 import android.app.TimePickerDialog;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.view.View;
 import android.widget.Button;
 import android.widget.DatePicker;
 import android.widget.EditText;
 import android.widget.TimePicker;public class MainActivity extends Activity {private EditText showDate = null;private Button pickDate = null;private EditText showTime = null;private Button pickTime = null;private static final int SHOW_DATAPICK = 0; private static final int DATE_DIALOG_ID = 1;  private static final int SHOW_TIMEPICK = 2;private static final int TIME_DIALOG_ID = 3;private int mYear;  private int mMonth;private int mDay; private int mHour;private int mMinute;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initializeViews();final Calendar c = Calendar.getInstance();mYear = c.get(Calendar.YEAR);  mMonth = c.get(Calendar.MONTH);  mDay = c.get(Calendar.DAY_OF_MONTH);mHour = c.get(Calendar.HOUR_OF_DAY);mMinute = c.get(Calendar.MINUTE);setDateTime(); setTimeOfDay();}/*** 初始化控件和UI视图*/private void initializeViews(){showDate = (EditText) findViewById(R.id.showdate);  pickDate = (Button) findViewById(R.id.pickdate); showTime = (EditText)findViewById(R.id.showtime);pickTime = (Button)findViewById(R.id.picktime);pickDate.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Message msg = new Message(); if (pickDate.equals((Button) v)) {  msg.what = MainActivity.SHOW_DATAPICK;  }  MainActivity.this.dateandtimeHandler.sendMessage(msg); }});pickTime.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Message msg = new Message(); if (pickTime.equals((Button) v)) {  msg.what = MainActivity.SHOW_TIMEPICK;  }  MainActivity.this.dateandtimeHandler.sendMessage(msg); }});}/*** 设置日期*/private void setDateTime(){final Calendar c = Calendar.getInstance();  mYear = c.get(Calendar.YEAR);  mMonth = c.get(Calendar.MONTH);  mDay = c.get(Calendar.DAY_OF_MONTH); updateDateDisplay(); }/*** 更新日期显示*/private void updateDateDisplay(){showDate.setText(new StringBuilder().append(mYear).append("-").append((mMonth + 1) < 10 ? "0" + (mMonth + 1) : (mMonth + 1)).append("-").append((mDay < 10) ? "0" + mDay : mDay)); }/** * 日期控件的事件 */  private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {  public void onDateSet(DatePicker view, int year, int monthOfYear,  int dayOfMonth) {  mYear = year;  mMonth = monthOfYear;  mDay = dayOfMonth;  updateDateDisplay();}  }; /*** 设置时间*/private void setTimeOfDay(){final Calendar c = Calendar.getInstance(); mHour = c.get(Calendar.HOUR_OF_DAY);mMinute = c.get(Calendar.MINUTE);updateTimeDisplay();}/*** 更新时间显示*/private void updateTimeDisplay(){showTime.setText(new StringBuilder().append(mHour).append(":").append((mMinute < 10) ? "0" + mMinute : mMinute)); }/*** 时间控件事件*/private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {mHour = hourOfDay;mMinute = minute;updateTimeDisplay();}};@Override  protected Dialog onCreateDialog(int id) {  switch (id) {  case DATE_DIALOG_ID:  return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,  mDay);case TIME_DIALOG_ID:return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute, true);}return null;  }  @Override  protected void onPrepareDialog(int id, Dialog dialog) {  switch (id) {  case DATE_DIALOG_ID:  ((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);  break;case TIME_DIALOG_ID:((TimePickerDialog) dialog).updateTime(mHour, mMinute);break;}}  /** * 处理日期和时间控件的Handler */  Handler dateandtimeHandler = new Handler() {@Override  public void handleMessage(Message msg) {  switch (msg.what) {  case MainActivity.SHOW_DATAPICK:  showDialog(DATE_DIALOG_ID);  break; case MainActivity.SHOW_TIMEPICK:showDialog(TIME_DIALOG_ID);break;}  }  }; }

【4】程序运行效果图:

     

标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。