如何在 DatePicker 中 select 年 FIRST

How to select the year FIRST in DatePicker

我正在实施 DatePicker 来提示用户 select 日期。我想更改 DatePicker 对话框的默认行为,以便它让用户首先 select 年份。

  1. 我已经知道,通过单击年份,会打开一个新菜单,允许用户 select 年份。我希望它先自动打开。

  2. 我对此进行了研究并找到了这个答案: 在此 post 中,解释了如何创建自定义日期选择器,您可以在其中设置最大日期。但是,这对先打开年份 selection 菜单没有帮助。

是否可以实现?

如果有人感兴趣,创建自定义日期选择器对话框的 Kotlin 翻译代码:

        val mCustomDatePicker = layoutInflater.inflate(com.example.meet.R.layout.custom_date_picker, null)

        var mDatePicker = mCustomDatePicker.findViewById(com.example.meet.R.id.mDatePicker) as DatePicker
        mDatePicker.maxDate = (Calendar.getInstance().getTime().getTime())

        val mDialog = AlertDialog.Builder(this)
        mDialog.setView(mCustomDatePicker)

        mDialog.setPositiveButton("OK", object : DialogInterface.OnClickListener {
            override fun onClick( dialog: DialogInterface, which: Int) {
//                mCalendar.set(mDatePicker.getYear(), mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
//                mBirthdayEdit.setText(mFormatDate.format(mCalendar.getTime()));

            }
        }).setNegativeButton("Cancel", object: DialogInterface.OnClickListener {
            @Override
            override fun onClick( dialog: DialogInterface, which: Int) {
                dialog.dismiss()
            }
        })
        mDialog.create()
        mDialog.show()

尝试使用下面的代码来实现:

DatePickerDialog dialog = new DatePickerDialog(
        context, // activity context
        listener, //date set listener
        year, 
        month, 
        day);

dialog.getDatePicker().getTouchables().get(0).performClick();

dialog.show();