如何正确使用 TimePickerDialog 到 DateTimePicker 用于 EditText 字段?

问题描述

我不确定如何使用 TimePickerDialogDatePickerDialog 一起启用时间选择,以便 editReturn_date 字段获得 dd/mm/yyyy hh:mm 的值。

我仍然不明白如何使用此代码段来激活我添加时间选择

TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {
   @Override
   public void onTimeSet(TimePicker view,int hours,int minutes) {

   }
};

以及如何使小时和分钟值加入

month += 1; 
String return_date = String.format("%02d/%02d/%04d",day,month,year);
editReturn_date.setText(return_date);
        int day,year,hours,minutes;
        editReturn_date = findViewById(R.id.editReturn_date);
        Calendar calendar = Calendar.getInstance();
        day = calendar.get(Calendar.DAY_OF_MONTH);
        month = calendar.get(Calendar.MONTH);
        year = calendar.get(Calendar.YEAR);
        hours = calendar.get(Calendar.HOUR_OF_DAY);
        minutes = calendar.get(Calendar.MINUTE);

        editReturn_date.setonClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                final DatePickerDialog datePickerDialog = new DatePickerDialog(RegisterLoean.this,new DatePickerDialog.OnDateSetListener(){
                    @Override
                    public void onDateSet(DatePicker view,int year,int month,int day){
                        TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {
                            @Override
                            public void onTimeSet(TimePicker view,int minutes) {
                                
                            }
                        };
                        month += 1;
                        String return_date = String.format("%02d/%02d/%04d",year);
                        editReturn_date.setText(return_date);
                    }
                },day);
                datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis());
                datePickerDialog.show();
            }
        });

解决方法

错误地使用了 DatePickerDialogTimePickerDialog

定义:

  • DatePickerDialog 用于让用户选择日期(月、日、年)
  • TimePickerDialog 用于让用户选择时间(小时、分钟)

因此这两个组件彼此不同。但是,您将它们视为单个组件来对待/使用。

解决方案

  1. 单独的日期选择和时间选择。 (例如,先显示 DatePickerDialog,然后显示 TimePickerDialog
  2. 使用具有日期和时间选择对话框的库(遗憾的是 Android 默认不提供)

如果您选择了选项 2,以下是我推荐的一些库:

这些基本满足你的所有需求

  • 日期和时间✅
  • 时间本地化✅
  • 日期时间格式✅

如果您有更多问题,请告诉我。谢谢。