DatePickerDialog - 构造函数中的上下文参数不接受

时间:2016-11-20 05:36:42

标签: android

我正在尝试使用Android DatePickerDialog创建一个泛型方法,因此每次使用DatePickerDialog时都会通过泛型函数调用它并返回日期。它也可以是自定义组件组件的一部分(即LinearLayout或NavigationView)。

但是由于DatePickerDialog的构造函数中的context参数,我陷入困境。它坚持实际的活动类名,我看起来像参数,即getContext(),getApplicationContext()等。

工作但不能用于通用方法 - DatePickerDialog datePickerDialog = new DatePickerDialog(RecordActivity3.this, new DatePickerDialog.OnDateSetListener() {

不工作 - DatePickerDialog datePickerDialog = new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {

不工作 - DatePickerDialog datePickerDialog = new DatePickerDialog(getApplicationContext(), new DatePickerDialog.OnDateSetListener() {

不工作 - DatePickerDialog datePickerDialog = new DatePickerDialog(activityClassParamter, new DatePickerDialog.OnDateSetListener() {

如果您处理过类似问题,请提出建议。

1 个答案:

答案 0 :(得分:0)

您需要activity context才能进行对话。对话框不适用于application context。您可以阅读有关上下文here的更多信息。

在通用对话框函数中声明activity parameter并将其用作上下文。

... genericDialog(Activity activity) {
   ... new DatePickerDialog(activity /* note activity context here*/ , ....);
}

如果您从某个活动中调用此功能,则可以将其称为

 genericDialog(ActivityClassName.this /* reference to activity */)