向后兼容的 setOnDateSetListener

Backwards-compatible setOnDateSetListener

我试图在 Fragment 中使用 DatePickerDialog 并为其设置 OnDateSetListener,但是当我尝试使用 setOnDateSetListener 方法时,我得到了编译时警告,如 Call 需要 API 级别 24(当前最小值为 16)。 有没有其他方法可以接收此回调? 我的应用的最小 SDK 是 16,最大是 26。

这是我的代码:

DatePickerDialog.Builder builder = new DatePickerDialog.Builder(getContext());
builder.setTitle(R.string.pick_date);
builder.setNegativeButton(R.string.cancel, null);
builder.setPositiveButton(R.string.ok, this);
DatePickerDialog dialogue = (DatePickerDialog) builder.create();
dialogue.setOnDateSetListener(this); // This is where I get the error
dialogue.show();

将此构造函数用于 DatePickerDialog

DatePickerDialog(@NonNull Context context, @Nullable OnDateSetListener listener, int year, int month, int dayOfMonth)

DatePickerDialog(Context context) 构造函数已添加到 API 级别 24。

如果要使其向后兼容,请使用 API 级别 1 中添加的 this constructor

DatePickerDialog (Context context, 
                DatePickerDialog.OnDateSetListener listener, 
                int year, 
                int month, 
                int dayOfMonth)