android - 单击edittext时尝试打开日期选择器对话框但显示错误
问题描述
我的代码截图附在下面
单击edittext时,我正在尝试打开日期选择器。但它在datepickerdialog函数的前两个参数中显示错误。
参数 1(上下文):预期: android.content.Context 实际: this
参数 2(Listener):预期: android...OnDateSetListener 实际: this
我在上面附上了我的代码截图^
谢谢,麻烦您了!
解决方案
这是一个不同的上下文,这意味着您在匿名单击侦听器类中使用此函数,并且当您传递this
它时,它将采用该上下文而不是您的案例中的父类或活动类。只需进行如下小改动:
DatePickerDialog dialog = new DatePickerDialog(MainActivity.this, MainActivity.this, mYear, mMonth, mDay);
datePickerDialog.show();
简而言之,如果您说this
,那么它将传递当前上下文,在您的情况下是单击侦听器上下文,而 Dialog 需要一个 Activity 上下文,因此改为使用MainActivity.this
指向主要活动上下文。在 Kotlin 中,这个上下文将被称为this@MainActivity
推荐阅读
- r - 由于 Latex 方程错误,无法将 RMarkdown 文档编织为 pdf
- here-api - 用于自动完成的 HERE API 6.2 与 7.0
- java - 如何在java中计算销售佣金
- python - 旋转相机小部件的正确方法是什么?
- osmnx - 由于包含“自然”和“土地使用”标签,osmnx 框被放大
- c++ - 如何找到并打印孪生素数?
- google-api - Google Insights API 在版本 5 中不返回 ruleImpact 分数。如何获得此分数?
- mysql-workbench - 当我尝试更改表以添加外键时,出现错误代码 1170
- python - 图像处理的多处理(已编辑)
- javascript - angularjs动态多选框带数量