向后兼容setOnDateSetListener
问题描述:
我试图使用在Fragment
一个DatePickerDialog
并设置OnDateSetListener
它,但是当我尝试使用setOnDateSetListener
方法,我得到一个编译时像通话警告需要API等级24(当前分钟是16)。 有没有其他方法可以接收此回调? 我的应用程序的分SDK是16,最大为26向后兼容setOnDateSetListener
这里是我的代码:
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在API层面加入
DatePickerDialog(@NonNull Context context, @Nullable OnDateSetListener listener, int year, int month, int dayOfMonth)
答
DatePickerDialog(Context context)
构造24
如果要使其向后兼容,请使用在API级别1中添加的this constructor:
DatePickerDialog (Context context,
DatePickerDialog.OnDateSetListener listener,
int year,
int month,
int dayOfMonth)