首页 > 解决方案 > 如何保存 timePickerDialog 中的 hourOfDay 和分钟以将其与其他变量进行比较?

问题描述

我想从用户输入的 TimePickerDialog 中获取 hourOfDay 和分钟,但值在 onTimeSet 方法中显示为零。

       LoadTime.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            calendar = Calendar.getInstance();
            currentHour = calendar.get(Calendar.HOUR_OF_DAY);
            currentMinute = calendar.get(Calendar.MINUTE);
            timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker timePicker, int hourOfDay, int minutes) {
                    if (hourOfDay >= 12) {
                        amPm = "PM";
                    } else {
                        amPm = "AM";
                    }
                    LoadTime.setText(String.format("%02d:%02d", hourOfDay, minutes) + amPm);
                }
            }, currentHour, currentMinute, false);
            Log.d("INT","val: " + hour);
            timePickerDialog.show();
        }
    });

我想保存这两个变量并执行一些 if-else 条件。提前致谢。

标签: androidtimepickerdialog

解决方案


您正在使用日志外部onTimeSet()方法。

LoadTime.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        calendar = Calendar.getInstance();
        currentHour = calendar.get(Calendar.HOUR_OF_DAY);
        currentMinute = calendar.get(Calendar.MINUTE);
        timePickerDialog = new TimePickerDialog(MainActivity.this, new 
        TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker timePicker, int hourOfDay, int minutes) {
                if (hourOfDay >= 12) {
                    amPm = "PM";
                } else {
                    amPm = "AM";
                }
                 Log.d("INT","val: " + hourOfDay);
                LoadTime.setText(String.format("%02d:%02d", hourOfDay, minutes) + amPm);
            }
        }, currentHour, currentMinute, false);
        timePickerDialog.show();
    }
});`

为了将值存储在 中string,java string.valueOf()方法将不同类型的值转换为字符串。例如:

String hourOfDayInString = String.valueOf(hourOfDay);

推荐阅读