重置时间选择器

时间:2019-08-05 09:37:49

标签: java android android-timepicker

我想在我的时间选择器对话框出现时选择两个不同的时间,但是在第一次保存后,时间选择器会保存以前选择的小时,并设置为选择分钟。基本上,我想刷新小部件,以便在单击以确认第一次设置时间选择器后选择小时而不是分钟。

我尝试重新显示弹出窗口,以便将小部件重置,并且可以正常工作,但是由于我在弹出式布局上有一些文本视图,并且以编程方式设置了边距,因此布局被弄乱了,我想确定是否有一种更简单的方法,不需要重新配置我的布局。

时间选择器基本上与被称为且被称为对话框的布局不同。

Dialog mydialog;
mydialog.setContentView(R.layout.timepickerpopup);

a[0]在弹出布局配置之外的on create方法上设置为true

done.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (Build.VERSION.SDK_INT >= 23 && a[0]) {
            hour[0] = timePicker.getHour();
            min[0] = timePicker.getMinute();

            timefrom.setText(String.format(Locale.getDefault(),
                "%02d:%02d", hour[0], min[0]));

            a[0] = false;
        }
        else if (Build.VERSION.SDK_INT >= 23 &&  !a[0]) {
            hour[1] = timePicker.getHour();
            min[1] = timePicker.getMinute();

            timeuntil.setText(String.format(Locale.getDefault(),
                "%02d:%02d", hour[1], min[1]));

            mydialog.dismiss();

        }
        else if (a[0]) {
            hour[0] = timePicker.getCurrentHour();
            min[0] = timePicker.getCurrentMinute();

            timefrom.setText(String.format(Locale.getDefault(),
                "%02d:%02d", hour[0], min[0]));

            a[0] = false;
        }
        else {
            hour[1] = timePicker.getCurrentHour();
            min[1] = timePicker.getCurrentMinute();

             timeuntil.setText(String.format(Locale.getDefault(),
                "%02d:%02d", hour[1], min[1]));

            mydialog.dismiss();
        }
    }
});

1 个答案:

答案 0 :(得分:0)

我最终使用了2个不同的时间选择器,并在它们之间进行切换以获得我想要的2个不同的小时。

try {
  if (typeof JSON.parse(x) !== 'boolean') {
    throw new Error('x must be boolean');
  }
} catch (e) {
  throw new Error('x must be boolean');
}

如果有人需要,这里是代码:

TimePicker timePicker1 = myDialog.findViewById(R.id.timePicker1);
TimePicker timePicker2 = myDialog.findViewById(R.id.timePicker2);

在我编写的代码的另一部分,您可以通过按其文本(从/直到)来选择要设置的时间,这就是为什么在关闭对话框之前我需要a [0]为真(所以两次除非您取消,否则将在完成时设置)。

由于这是我的新手,如果有人知道我的问题的答案或对我的代码进行了一些改进,请在此处共享它。