如何使用 TimePicker 对话框将默认时间设置为指定的小时?

How do I set default time to a specified hour with TimePicker dialog?

我有一个 Fragment 可以为用户启动一个 TimePicker 对话框 select 一天中的某个时间。我希望对话框启动时显示的默认时间是 4:00 PM。然后用户可以 select 他们自己的时间。我一直在尝试 setHour 和 setMinute 但无济于事。

下面是设置为当前时间的 TimePicker 的部分代码。请告知如何修改以在 TimePicker 对话框首次启动时始终显示 4:00 PM。

...
public Dialog onCreateDialog(Bundle savedInstanceState) {
    cal = Calendar.getInstance();
    hour = cal.get(Calendar.HOUR_OF_DAY);
    minute = cal.get(Calendar.MINUTE);

    TimePickerDialog dialog = new TimePickerDialog(getActivity(),this,hour,minute,
            dialog.setTitle("Select...");

    return dialog;
}

可以使用方法

dialog.updateTime(int hour, int minute);

如图API。关键是小时始终采用 24 小时格式。或者,构造函数也接受小时和分钟作为 ints

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

例如设置为 4:00 没有 24 小时格式的下午:

TimePickerDialog(getActivity(), this, 16, 0, false);

你只需要创建你的日历实例如下

SimpleDateFormat sdf = new SimpleDateFormat("hh:ss");
        Date date = null;
        try {
            date = sdf.parse("04:00");
        } catch (ParseException e) {
        }
        Calendar cal = Calendar.getInstance();
        c.setTime(date);
      //create your timepickerdialog instance here