1 经常用到日期时间控件选择日期和时间:
java代码:
package com.example.fragmentdemo1;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;
/**
* 日期和时间控件的使用与测试
* @author root
* 参考 : http://www.cnblogs.com/menlsh/archive/2013/02/23/2923867.html
*
*/
public class DateTimeActivity extends Activity {
private EditText showDate = null;
private EditText showTime = null;
private static final int DATE_DIALOG_ID = 1;
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. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.date_time);
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);
showTime = (EditText)findViewById(R.id.showtime);
}
/**
* 设置日期
*/
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 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));
}
// @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;
// }
// }
//
/*
* Function : Button按钮响应
* Param : v按钮对象
*/
public void onClick(View v) {
switch (v.getId()) {
case R.id.pickdate:
MyDatePickerDialog myDatePickerDialog = new MyDatePickerDialog();
DatePickerDialog datePickerDialog = new DatePickerDialog(this,
myDatePickerDialog,mYear, mMonth, mDay);
datePickerDialog.show(); //显示日期设置对话框
break;
case R.id.picktime:
MyTimePickerDialog myTimePickerDialog = new MyTimePickerDialog();
TimePickerDialog timePickerDialog = new TimePickerDialog(this,
myTimePickerDialog, mHour, mMinute, true);
timePickerDialog.show(); //显示时间设置对话框
break;
}
}
/*
* Function : 自定义MyDatePickerDialog类,用于实现DatePickerDialog.OnDateSetListener接口,
* 当点击日期设置对话框中的“设置”按钮时触发该接口方法
*/
public class MyDatePickerDialog implements DatePickerDialog.OnDateSetListener {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDateDisplay();
}
}
/*
* Function : 自定义MyTimePickerDialog类,用于实现TimePickerDialog.OnTimeSetListener接口,
* 当点击时间设置对话框中的“设置”按钮时触发该接口方法
*/
public class MyTimePickerDialog implements TimePickerDialog.OnTimeSetListener {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
updateTimeDisplay();
}
}
}
2 使用的xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="欢迎" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="日期和时间控件的使用" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/showdate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Button
android:id="@+id/pickdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选择日期" android:onClick="onClick"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/showtime"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Button
android:id="@+id/picktime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选择时间" android:onClick="onClick"/>
</LinearLayout>
</LinearLayout>
本文介绍了一个Android应用程序中日期和时间选择控件的使用方法。通过示例代码展示了如何利用DatePickerDialog和TimePickerDialog实现日期与时间的选择,并更新UI显示。此外,还提供了一个简单的XML布局文件用于展示控件。
810

被折叠的 条评论
为什么被折叠?



