Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用带有日期选择器的警报对话框?_Java_Android - Fatal编程技术网

Java 如何使用带有日期选择器的警报对话框?

Java 如何使用带有日期选择器的警报对话框?,java,android,Java,Android,当到目前为止小于 起始日期。在下面的代码中,我得到一个异常,说明行alert.show()的logcat中的“无法添加窗口--令牌null不适用于应用程序” int res=to_date.compareTo(datefrom.from_date); //如果date1等于此date2,则res=0;如果日期1早于日期2,则res0在date2之后 if(res{}); AlertDialog alert=builder.create(); alert.getWindow().getAttrib

当<代码>到目前为止<代码>小于
起始日期
。在下面的代码中,我得到一个异常,说明
alert.show()
logcat
中的
“无法添加窗口--令牌null不适用于应用程序”

int res=to_date.compareTo(datefrom.from_date);
//如果date1等于此date2,则res=0;如果日期1早于日期2,则res<0;date1的res>0在date2之后
if(res{});
AlertDialog alert=builder.create();
alert.getWindow().getAttributes();
alert.show();
}

在此处使用活动上下文,而不是应用程序上下文
新建AlertDialog.Builder(getApplication())

如果在膨胀
AlertDialog
时应用程序未移动到其他活动,请将调用活动的上下文传递到
AlertDialog.Builder
。使用
YourActivity。这是
而不是
getApplication()


以下是。

问题在于
getApplication()
上下文

您需要将
活动
类上下文传递到那里。比如,如果您在
活动中使用代码,那么这应该是

AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

但是,如果您正在
片段中使用代码,那么它应该是

AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

如果我使用“this”代替“getApplication”,我会收到一个错误,说明无法将其提供给datepicker dialog。是否在片段或活动中调用此函数?如果在匿名或内部类中创建alertdialog,将YourActivity.this传递给AlertDialog.builder,以便它知道它是在活动上下文中创建的,而不是在活动中调用的匿名或内部classI。