Android 时间选择器不工作,正在崩溃

Android 时间选择器不工作,正在崩溃,android,timepicker,timepickerdialog,Android,Timepicker,Timepickerdialog,我试图在编辑文本中打开时间选择器对话框。虽然对话框已成功打开,但当我单击“确定”设置时间时,它会引发异常并导致崩溃 错误如下: 2020-10-06 10:16:28.972 1821-3134/? E/InputReader: isBtnTouch is true need to clear slots.2020-10-06 10:16:29.029 11973-11973/com.example.visitortracker E/AndroidRuntime: FATAL EXCEPTION

我试图在编辑文本中打开时间选择器对话框。虽然对话框已成功打开,但当我单击“确定”设置时间时,它会引发异常并导致崩溃

错误如下:

2020-10-06 10:16:28.972 1821-3134/? E/InputReader: isBtnTouch is true need to clear slots.2020-10-06 10:16:29.029 11973-11973/com.example.visitortracker E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.visitortracker, PID: 11973
java.lang.IllegalArgumentException: Invalid era
    at java.util.GregorianCalendar.computeTime(GregorianCalendar.java:2686)
    at java.util.Calendar.updateTime(Calendar.java:3402)
    at java.util.Calendar.getTimeInMillis(Calendar.java:1761)
    at java.util.Calendar.getTime(Calendar.java:1734)
    at com.example.visitortracker.VisitorEntryActivity$1.onTimeSet(VisitorEntryActivity.java:102)
    at android.app.TimePickerDialog.onClick(TimePickerDialog.java:174)
    at android.app.TimePickerDialog$1.onClick(TimePickerDialog.java:156)
我的代码如下所示

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.edt_timeIn:
            openTimePicker();
            break;
    }
}


private void openTimePicker() {
    calendar = Calendar.getInstance();
    calendar.get(Calendar.HOUR_OF_DAY);
    calendar.get(Calendar.MINUTE);
    TimePickerDialog dialog = new TimePickerDialog(VisitorEntryActivity.this, new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker timePicker, int selected_hour, int selected_minute) {
            String am_pm = "am";
            if (selected_hour > 12) {
                selected_hour = selected_hour - 12;
                am_pm = "pm";
            }
            calendar.set(hour, selected_hour);
            calendar.set(minute, selected_minute);
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm", Locale.getDefault());
            edt_timeIn.setText(simpleDateFormat.format(calendar.getTime()) + " " + am_pm);
        }
    }, hour, minute, false);
    dialog.show();
}
任何帮助都可以接受。

提前谢谢你

变化

calendar.set(小时,所选小时)
日历.设置(日历.小时/天,所选小时)


calendar.set(分钟,所选分钟)
日历.设置(calendar.MINUTE,selected_MINUTE)

非常感谢您的回复。它起作用了。你能告诉我为什么它抛出无效的era异常。我想因为小时和分钟仍然为空,你可以尝试打印它们。如果你接受这个问题,请标记为已接受(使用顶部箭头和复选按钮)