2015-04-04 74 views
0

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

例如:我点击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(); 
     } 

    }); 
} 

回答

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

    } 
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())); 
} 
相关问题