Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 计时器选择器反向24小时数据_Android - Fatal编程技术网

Android 计时器选择器反向24小时数据

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

你好

我有一个包含时间选择器的对话框类。计时器选择器设置为24小时模式当我选择时间小于12小时时-选择器返回时间时,会多加+12小时

比如说-

我设定了07:25-返回19:25。反之亦然

如果我设置19:43-返回07:42。及

例如,如果我设置12:01,TimePicker返回愚蠢的24:01

这个工具有什么问题

下面是我的Dialog类的完整代码:

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个整数。可以通过设置天的小时而不是小时来固定。也许你把时间设定在某个地方?