我已经为时间选择器编写了代码。我当前的时间选择器显示比实际当前时间少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();
}
};
我的时间选择器片段:
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);
}
}
如果您需要更多详情,请告诉我们。
答案 0 :(得分:3)
您正在使用Calendar.get(Calendar.HOUR)
,其定义如下:
小时获取和设置的字段编号,表示上午或下午的小时。
我认为您需要使用Calendar.HOUR_OF_DAY
,然后TimePicker
会处理上午/下午(我会假设)。
目前,14:00(下午2:00)的时间将以小时为单位返回2,因此您将失去下午/下午。