我已经为时间选择器编写了代码。我的当前时间选择器显示的时间比实际当前时间少 12 小时。你们中的任何一个人都可以让我知道我在这里错过了什么。欢迎所有建议。提前致谢。
我的时间选择器代码:
public void showTimePicker() {
TimePickerFragment time1 = new TimePickerFragment();
/**
* Set Up Current Time Into dialog
*/
Calendar calendar = Calendar.getInstance();
Bundle args = new Bundle();
args.putInt("Hour", calendar.get(Calendar.HOUR));
args.putInt("Minute", calendar.get(Calendar.MINUTE));
time1.setArguments(args);
/**
* Set Call back to capture selected time
*/
time1.setCallBack(onTime);
time1.show(getFragmentManager(), "Time Picker");
}
TimePickerDialog.OnTimeSetListener onTime = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
time.setText(String.valueOf(hourOfDay) + ":" + String.valueOf(minute));
timeValue1 = time.getText().toString();
}
};
我的时间选择器 fragment :
public class TimePickerFragment extends DialogFragment {
TimePickerDialog.OnTimeSetListener onTimeSet;
public TimePickerFragment() {
}
public void setCallBack(TimePickerDialog.OnTimeSetListener onTime) {
onTimeSet = onTime;
}
public int hour, minute;
@Override
public void setArguments(Bundle args) {
super.setArguments(args);
hour = args.getInt("Hour");
minute = args.getInt("Minute");
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new TimePickerDialog(getActivity(), onTimeSet, hour, minute, true);
}
}
如果您需要更多详细信息,请告诉我。
最佳答案
您正在使用 Calendar.get(Calendar.HOUR)
,其定义如下:
HOUR Field number for get and set indicating the hour of the morning or afternoon.
我认为您需要使用 Calendar.HOUR_OF_DAY
,然后 TimePicker
将处理上午/下午(我假设)。
目前,14:00(下午 2:00)的时间将返回 2 作为小时,因此您失去了下午/下午。
关于android - 我得到的时间比时间选择器的当前时间早 12 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29073103/