android - 我如何从 timePickerDialog 中保存 hourOfDay 和分钟以将其与其他变量进行比较?

标签 android timepickerdialog

我想从用户输入的 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 条件。提前致谢。

最佳答案

您在 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);

关于android - 我如何从 timePickerDialog 中保存 hourOfDay 和分钟以将其与其他变量进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54184416/

相关文章:

android - 如何将消息从 BroadcastReceiver 发送到 Activity 或 fragment

android - Listview 未包装的弹出窗口

java - 使用 timepickerdialog 选择了错误的时间

android - 如何将 short[] 转换为 double[]?

java - Android 中的 IllegalArgumentException

android - 如何在 NativeScript 中创建自定义导航栏?

android - 如何在时间选择器上设置自定义标题?

java.text.ParseException : Unparseable date: "" (at offset 0) error for timepickerdialog 异常

java - 如果 DatePickerDialog 被取消,如何禁用 TimePickerDialog?

android - 如何将时间选择器对话框用于其他用途?