Android 计时器选择器反向24小时数据
你好 我有一个包含时间选择器的对话框类。计时器选择器设置为24小时模式当我选择时间小于12小时时-选择器返回时间时,会多加+12小时 比如说- 我设定了07:25-返回19:25。反之亦然 如果我设置19:43-返回07:42。及 例如,如果我设置12:01,TimePicker返回愚蠢的24:01 这个工具有什么问题 下面是我的Dialog类的完整代码:Android 计时器选择器反向24小时数据,android,Android,你好 我有一个包含时间选择器的对话框类。计时器选择器设置为24小时模式当我选择时间小于12小时时-选择器返回时间时,会多加+12小时 比如说- 我设定了07:25-返回19:25。反之亦然 如果我设置19:43-返回07:42。及 例如,如果我设置12:01,TimePicker返回愚蠢的24:01 这个工具有什么问题 下面是我的Dialog类的完整代码: public class TimePickerDialog extends DialogFragment { public sta
public class TimePickerDialog extends DialogFragment {
public static final String EXTRA_TIME = "time";
@Bind(R.id.pickerTime_timePicker) TimePicker timePicker;
//// DialogFragment methods
@Override @NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
View view = getActivity().getLayoutInflater().inflate(R.layout.picker_time, null);
ButterKnife.bind(this, view);
timePicker.setIs24HourView(true);
return new AlertDialog.Builder(getActivity())
.setView(view)
.setTitle(getString(R.string.time_picker_dialog_label))
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
sendResult(Activity.RESULT_OK);
}
})
.setNegativeButton(android.R.string.cancel, null)
.create();
}
//// Private methods
private void sendResult(int resultCode) {
if (getTargetFragment() == null) {
return;
}
Intent intent = new Intent();
intent.putExtra(EXTRA_TIME, getTimeFromTimePicker(timePicker));
getTargetFragment().onActivityResult(getTargetRequestCode(), resultCode, intent);
}
private Date getTimeFromTimePicker(TimePicker timePicker) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, timePicker.getCurrentHour());
calendar.set(Calendar.MINUTE, timePicker.getCurrentMinute());
return calendar.getTime();
}
}
我想,您应该使用calendar.set(calendar.一天中的小时数,timePicker.getCurrentHour()) 把这条线
timePicker.setCurrentHour(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));
下面,
timePicker.setIs24HourView(true);
这将正确设置当前时间。
让我知道它是否适合您…请阅读
提供的示例适用于所有人,无需绑定某些内容。为什么在对话框中需要额外的逻辑?它应该负责挑选时间。其他逻辑应该在您的控制器中。不,这不起作用。我应该注意到我当前在设备上的时间是13:33。但当我启动时间选择器时,它会在滚动条上设置01:33。24小时模式开启了,真奇怪。我将您的代码复制并粘贴到我的项目中,效果很好。除非我调用caledar.get(Calendar.HOUR OF theu DAY),它返回13的1个整数。可以通过设置天的小时而不是小时来固定。也许你把时间设定在某个地方?