How to set custom Time in TimePicker

纵然是瞬间 提交于 2019-12-07 13:27:30

问题


TimePicker shows current time as default in TimePicker, but what if i want to set default time in time picker as per my requirement.

Like its 11:10 when i am writing this, but in TimePicker i like to show 01:00 as default (my mean 2 hours difference, and minutes should be 00 only)

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;
}

回答1:


You can do this with following code:

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);



回答2:


You can try below code

     SimpleDateFormat sdf = new SimpleDateFormat("hh:ss");
    Date date = null;
    try {
        date = sdf.parse("07:00");
    } catch (ParseException e) {
    }
    Calendar c = Calendar.getInstance();
    c.setTime(date);

    TimePicker picker = new TimePicker(getApplicationContext());
    picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY));
    picker.setCurrentMinute(c.get(Calendar.MINUTE));


来源:https://stackoverflow.com/questions/31376072/how-to-set-custom-time-in-timepicker

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!