java - 如何在TimePicker中设置自定义时间

标签 java android datetime calendar android-timepicker

TimePicker 在 TimePicker 中将当前时间显示为默认时间,但是如果我想根据我的要求在时间选择器中设置默认时间怎么办。

就像我写这篇文章时的 11:10,但在 TimePicker 中我喜欢将 01:00 显示为默认值(我的平均时差为 2 小时,分钟应该仅为 00)

static final int TIME_DIALOG_ID = 1;

    public  int year,month,day,hour,minute;  
    private int mYear, mMonth, mDay,mHour,mMinute; 

    public TimePickerActivity() {

            // Assign current Date and Time Values to Variables
            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);
    }

    private TimePickerDialog.OnTimeSetListener mTimeSetListener =
        new TimePickerDialog.OnTimeSetListener() {

        public void onTimeSet(TimePicker view, int hourOfDay, int min) {
            hour = hourOfDay;
            minute = min;

            String formattedMinutes = "" + min;
            String formattedHour = "" + hourOfDay;

            if (hourOfDay < 10) {
                formattedHour = "0" + hourOfDay;
            }

            if (min < 10) {
                formattedMinutes = "0" + min;
            }

            textTime.setText(formattedHour + ":" + formattedMinutes);
        }
    };

  @Override
  protected Dialog onCreateDialog(int id) {
    switch (id) {

    case TIME_DIALOG_ID:
        TimePickerDialog timePickerDialog = new TimePickerDialog(this, mTimeSetListener, mHour, mMinute, false);
        return timePickerDialog;
    }

    return null;
}

最佳答案

您可以使用以下代码执行此操作:

private TimePicker timePicker;

    timePicker = (TimePicker) dialog.findViewById(R.id.timePickerDialog);

    if(DateFormat.is24HourFormat(getActivity()){
        timePicker.setIs24HourView(true);
    }else {
        timePicker.setIs24HourView(false);
    }
    // here you can define your hour and minute value.
    timePicker.setCurrentHour(hour);
    timePicker.setCurrentMinute(minute);

关于java - 如何在TimePicker中设置自定义时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31376072/

相关文章:

android - Android 中的 NegativeArraySizeException

c# - XAML 数据绑定(bind)在未设置 Viewmodel 时覆盖属性

PHP - 将时间加到当前时间,最佳实践

java - 在 Firebase (Android) 中同时更新多个节点中的多个字段

java - 我该如何跳出这个循环? java

java - gradle:通过(文件)循环调用java插件

android - 如何维护 MediaPlayer 的单个实例 [Android]

java - Android 日期格式

sqlite - SQLite 中的 Unix 时间戳或 IS0-8601 日期字符串

java - 我该如何解决这个数组和循环?正确的输出但是