向后兼容的setOnDateSetListener

时间:2017-08-08 13:23:44

标签: android backwards-compatibility datepickerdialog

我正在尝试在DatePickerDialog中使用Fragment并为其设置OnDateSetListener,但当我尝试使用setOnDateSetListener方法时,我得到了一个编译 - 时间警告如呼叫需要API级别24(当前最小值为16)。 有没有其他方法可以收到此回调? 我的app的min 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();

2 个答案:

答案 0 :(得分:3)

将此构造函数用于DatePickerDialog

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

答案 1 :(得分:1)

在API级别24中添加了

DatePickerDialog(Context context)构造函数。

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

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