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。