从textview获取TimePicker开始时间

时间:2015-04-04 15:45:18

标签: android datetimepicker

我有一个TimePicker。当用户首次单击TimePicker时,它会显示Time is is。因此,我们在11:40点击TimePicker,TimePicker将显示11:40,直到他们将其更改为他们想要的时间。所以说他们选择1点的时间。我将它保存到textview供他们查看。 TextView是调用startime。我想要的是,如果他们再次点击同一时间选择器,而不是显示单击它的时间,我希望它显示文本视图显示的时间。

例如:我点击TimePicker,它将时间显示为11:14,因为它的时间是什么时候。我现在将时间选择器设置为1:00,单击确定并将1:00保存到textview。当我再次点击TimePicker时,我现在希望它说1:00匹配Textview而不是11:14实时时间。我该怎么做谢谢!

时间选择代码:

    // Method To See What Happens When StartTime Is Clicked//
    public void OnClick_StartTime(View v) {

    // Vibrates For 50 Mill//
    vibe.vibrate(50);

    // Create Calender Instance//
    final Calendar calendar = Calendar.getInstance();

    // Creates New Time Picker Dialog//
    TimePickerDialog timePickerDialog = TimePickerDialog.newInstance(
            Change.this,
            calendar.get(Calendar.HOUR_OF_DAY),
            calendar.get(Calendar.MINUTE),
            false
    );
    timePickerDialog.show(getFragmentManager(), TIMEPICKER_TAG);

    // Puts It Into 12 Hour Format//
    timePickerDialog.setOnTimeSetListener(new  
    TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(RadialPickerLayout radialPickerLayout, 
        int hourOfDay, int minute) {

            // Define 24 Hour Of Day//
            int military_hour_start= hourOfDay;

            // If Hour Equals Zero Set It To 24//
            if (military_hour_start == 0) {

                // Sets hour to 24//
                military_hour_start = 24;
            }

            // 24 Hour Format Time And Minute String//
            military_start_time = String.valueOf(military_hour_start) + 
            ":" + minute;

            // Sets Time 12 Hour Format//
            String timeSet;
            if (hourOfDay > 12) {
                hourOfDay -= 12;
                timeSet = "PM";
            } else if (hourOfDay == 0) {
                hourOfDay += 12;
                timeSet = "AM";
            } else if (hourOfDay == 12)
                timeSet = "PM";
            else
                timeSet = "AM";

            String min;
            if (minute < 10)
                min = "0" + minute;
            else
                min = String.valueOf(minute);

            // Append in a StringBuilder//
            aTime = String.valueOf(hourOfDay) + ':' + min + " " + 
            timeSet;
            starttime.setText(aTime);

            // Calls Calculate Total Time Method//
            Calculate_TotalTime();
        }

    });
}

2 个答案:

答案 0 :(得分:0)

尝试:

if(starttime.getText().toString().equals("")
   {
     //Your current code which fires the TimePickerDialog

   }
 else  //There is some value stored in starttime
   {
      //call below functions on timepickerDialog object. 
      //get hour min sec from starttime
     timePickerDialog.setCurrentHour(hour);
     timePickerDialog.setCurrentMinute(min);
     timePickerDialog.setCurrentSecond(sec);

   }

答案 1 :(得分:0)

在您的通话代码中,捆绑您想要显示的时间(例如1:00):

Bundle b = new Bundle();
b.putInt("hour", 1);
b.putInt("minute", 0);

dlgFrag = new TimePickerFragment();
dlgFrag.setArguments(b);
dlgFrag.show(..., ...);

TimePickerDialog班级中,覆盖onCreateDialog(Bundle b)以读取小时/分钟参数:

private int _hour;
private int _minute;
@Override
public Dialog onCreateDialog(Bundle b_) {
    Bundle bundle_ = getArguments();
    if (bundle_ != null) {
        _hourOfDay = bundle_.getInt("hour");
        _minute = bundle_.getInt("minute");
    }

    // Use the current time as the default values for the picker
    if (_hourOfDay <= 0 || _minute <= 0) {
        final Calendar c = Calendar.getInstance();
        _hourOfDay = c.get(Calendar.HOUR_OF_DAY);
        _minute = c.get(Calendar.MINUTE);
    }

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