首页 > 代码库 > Android开发之DatePickerDialog与TimePickerDialog的功能和用法详解

Android开发之DatePickerDialog与TimePickerDialog的功能和用法详解

DatePickerDialog与TimePickerDialog的功能比较简单,用法也很简单,只要下面两步即可。

通过new关键字创建DatePickerDialog、TimePickerDialog实例,调用它们的show()方法即可将日期选择对话框、时间选择对话框显示出来。

为DatePickerDialog、TimePickerDialog绑定监听器,这样可以保证用户通过DatePickerDialog、TimePickerDialog设置事件是触发监听器,从而通过监听器来获取用户设置的事件。

TimePickerDialog(时间选择对话框)


概述:

一个使用TimePicker的对话框,为用户提供时间选择。

类结构:

java.lang.Object
   ?	android.app.Dialog
 	   ?	android.app.AlertDialog
 	 	   ?	android.app.TimePickerDialog

构造方法:

Public Constructors

 

TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)

TimePickerDialog(Context context, int theme, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)

说明:

public TimePickerDialog (Context context, TimePickerDialog.OnTimeSetListener callBack,inthourOfDay, int minute, boolean is24HourView)

参数:

参数

说明

Context

运行组件的Activity。

callBack

用户选择好时间后,通知应用的回调函数。

hourOfDay

初始的小时。

Minute

初始的分钟。

is24HourView

是否使用24小时制。

public TimePickerDialog (Context context,int teme, TimePickerDialog.OnTimeSetListener callBack,int hourOfDay, int minute, boolean is24HourView)

参数:

参数

说明

Context

运行组件的Activity。

teme

应用在时间选择对话框上的主题。

callBack

用户选择好时间后,通知应用的回调函数。

hourOfDay

初始的小时。

Minute

初始的分钟。

is24HourView

是否使用24小时制。

公有方法:

Public Methods

void

onClick(DialogInterface dialog, int which)

当对话框上的按钮被单击时这个方法将被回调。

void

onRestoreInstanceState(Bundle savedInstanceState)

从前一个保存的bundle 中恢复对话框的状态。

Bundle

onSaveInstanceState()

将对话框的状态保存到bundle.

void

onTimeChanged(TimePicker view, int hourOfDay, int minute)

当时间被关改变的时候回调该方法。

void

updateTime(int hourOfDay, int minutOfHour)

更新时间

实例:

public static class TimePickerFragment extends DialogFragment
                            implements TimePickerDialog.OnTimeSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current time as the default values for the picker
        final Calendar c = Calendar.getInstance();
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);

        // Create a new instance of TimePickerDialog and return it
        return new TimePickerDialog(getActivity(), this, hour, minute,
                DateFormat.is24HourFormat(getActivity()));
    }

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // Do something with the time chosen by the user
    }
}


DatePickerDialog(时间选择对话框)


概述:

一个带有的DatePicker的简单对话框,为用户提供日期选择。

类结构:

java.lang.Object
   ?	android.app.Dialog
 	   ?	android.app.AlertDialog
 	 	   ?	android.app.DatePickerDialog

构造方法:

Public Constructors

DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

DatePickerDialog(Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

说明:

public DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, intdayOfMonth)

参数:

参数

说明

Context

运行组件的Activity。

callBack

用户选择好日期后,通知应用的回调函数。

year

初始的年。

monthOfYear

初始的月。

dayOfMonth

初始的天。

public DatePickerDialog(Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, intdayOfMonth)

参数:

参数

说明

Context

运行组件的Activity。

theme

应用在日期选择对话框上的主题。

callBack

用户选择好日期后,通知应用的回调函数。

year

初始的年。

monthOfYear

初始的月。

dayOfMonth

初始的天。

公有方法:

Public Methods

DatePicker

getDatePicker()

获取日期选择对话框。

void

onClick(DialogInterface dialog, int which)

当对话框上的按钮被单击时这个方法将被回调。

void

onDateChanged(DatePicker view, int year, int month, int day)

当日期改变的时候回调该方法。

void

onRestoreInstanceState(Bundle savedInstanceState)

当对话框上的按钮被单击时这个方法将被回调。

Bundle

onSaveInstanceState()

将对话框的状态保存到bundle中。

void

updateDate(int year, int monthOfYear, int dayOfMonth)

设置当前日期。

 实例:

public static class DatePickerFragment extends DialogFragment
                            implements DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

        // Create a new instance of DatePickerDialog and return it
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        // Do something with the date chosen by the user
    }
}