On Dec 29, 2011, at 12:18 PM, Paul F. Johnson wrote: > I've implemented a DateTimeListener event which compiles fine, but dies when > the emulator comes to run the code with the following error: Unhandled > Exception ... > with the call in the code looking like this > > DateTime today = DateTime.Now; > > DatePicker dater = > FindViewById<DatePicker>(Resource.Id.dateDisplay); > dater.Init(today.Year, today.Month, today.Day, new > DateChangedListener((DatePicker, year, month, day) => > { > DateTime d = new DateTime(year, month, day); > common.date = d; > }));
The problem is a semantic mismatch between Android dates and .NET dates: Android months are 0-based, while .NET dates are 1-based. For example, if it happens to be December, DateTime.Now.Month will be 12, which is out of range for Android. Result: Java.Lang.IllegalArgumentException in the Init() call. If instead you run this in January, the Init() call will succeed, but when the callback is invoked the `month` parameter will be 0, and .NET will throw an ArgumentOutOfRangeException. The differing month systems need to be translated. :-/ - Jon _______________________________________________ Monodroid mailing list Monodroid@lists.ximian.com UNSUBSCRIBE INFORMATION: http://lists.ximian.com/mailman/listinfo/monodroid