我有一个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();
}
});
}
答案 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()));
}