C# CalendarView选择六月日期应用程序崩溃
我正在使用CalendarView创建一个Xamarin应用程序。选择日期时,除一月日期外,一切正常。任何一年的任何一个月,我的应用程序崩溃,我得到“应用程序意外停止工作” 我的XML代码是C# CalendarView选择六月日期应用程序崩溃,c#,xamarin,visual-studio-2015,calendarview,C#,Xamarin,Visual Studio 2015,Calendarview,我正在使用CalendarView创建一个Xamarin应用程序。选择日期时,除一月日期外,一切正常。任何一年的任何一个月,我的应用程序崩溃,我得到“应用程序意外停止工作” 我的XML代码是 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px">
<CalendarView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cdrCalendar"
android:maxDate="01/01/2026" />
<TextView
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1" />
</LinearLayout>
我的C#代码是
命名空间BitesBoardMobile.Droid
{
类对话框\日历:DialogFragment
{
私有日历视图_日历;
私有文本视图_text;
私人国际月;
私人国际年;
私人国际日;
创建视图上的公共覆盖视图(布局、充气机、视图组容器、捆绑包保存状态)
{
base.OnCreateView(充气机、容器、保存状态);
var视图=充气机。充气(Resource.Layout.dialog\u日历,容器,false);
_calendar=view.FindViewById(Resource.Id.cdrCalendar);
_text=view.findviewbyd(Resource.Id.textView1);
_calendar.DateChange+=(对象发送者,CalendarView.DateChangeEventArgs参数)=>
{
var newdate=新日期时间(args.Year,args.Month,args.DayOfMonth);
_月份=新日期。月份+1;
_年=新日期。年;
_day=newdate.day;
_text.text=_年+“/”+_月+“/”+_日;
};
返回视图;
}
}
}
到目前为止,我所做的只是获取选定的日期并将其放在文本视图中
他们有什么想法吗?
谢谢请查看文档: 月份int:设置为[0-11]的月份 这意味着一月是零。但是
DateTime
构造函数在1月份需要1。所以你必须加一个,就像你在下面的一行做的一样
_calendar.DateChange += (object sender, CalendarView.DateChangeEventArgs args) =>
{
var newdate = new DateTime(args.Year, args.Month + 1, args.DayOfMonth);
_text.Text = newdate.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);
};
请查看文档: 月份int:设置为[0-11]的月份 这意味着一月是零。但是
DateTime
构造函数在1月份需要1。所以你必须加一个,就像你在下面的一行做的一样
_calendar.DateChange += (object sender, CalendarView.DateChangeEventArgs args) =>
{
var newdate = new DateTime(args.Year, args.Month + 1, args.DayOfMonth);
_text.Text = newdate.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);
};
与.NET中的许多内容不同,构造函数希望它的参数基于1,而不是基于0。如果Android参数基于0,则需要向其添加1。与.NET中的许多内容不同,构造函数希望其参数基于1,而不是基于0。如果Android参数基于0,则需要向其添加1