首页 > 解决方案 > 单击edittext时尝试打开日期选择器对话框但显示错误

问题描述

我的代码截图附在下面

单击edittext时,我正在尝试打开日期选择器。但它在datepickerdialog函数的前两个参数中显示错误。

参数 1(上下文):预期: android.content.Context 实际: this

参数 2(Listener):预期: android...OnDateSetListener 实际: this

我在上面附上了我的代码截图^

谢谢,麻烦您了!

在此处输入图像描述

标签: androidandroid-studiodatepickerdialog

解决方案


这是一个不同的上下文,这意味着您在匿名单击侦听器类中使用此函数,并且当您传递this它时,它将采用该上下文而不是您的案例中的父类或活动类。只需进行如下小改动:

DatePickerDialog dialog = new DatePickerDialog(MainActivity.this, MainActivity.this, mYear, mMonth, mDay);
datePickerDialog.show();

简而言之,如果您说this,那么它将传递当前上下文,在您的情况下是单击侦听器上下文,而 Dialog 需要一个 Activity 上下文,因此改为使用MainActivity.this指向主要活动上下文。在 Kotlin 中,这个上下文将被称为this@MainActivity


推荐阅读