美好的一天读者, 我正在尝试使用一个方法来解决android如何将ContentPage转换为PCL中的android的活动甚至可能?
尝试使用指令,但它也无效
public static void AddEvent(GSDEvents ev, Activity ac)
{
// Id++;
Calendar cal = Calendar.GetInstance(Java.Util.TimeZone.Default, Locale.Default);
ContentValues eventValues = new ContentValues();
eventValues.Put(CalendarContract.Events.InterfaceConsts.CalendarId, Id);
eventValues.Put(CalendarContract.Events.InterfaceConsts.Title, ev.Title);
eventValues.Put(CalendarContract.Events.InterfaceConsts.Description, ev.Description);
eventValues.Put(CalendarContract.Events.InterfaceConsts.Dtstart, GetDateTimeMS(ev.Year, ev.Month, ev.Day, ev.Hour, ev.Minute));
eventValues.Put(CalendarContract.Events.InterfaceConsts.Dtend, GetDateTimeMS(ev.Year, ev.Month, ev.Day, ev.Hour, ev.Minute));
eventValues.Put(CalendarContract.Events.InterfaceConsts.AllDay, ev.AllDay ? "1" : "0");
eventValues.Put(CalendarContract.Events.InterfaceConsts.HasAlarm, ev.HasAlarm ? "1" : "0");
eventValues.Put(CalendarContract.Events.InterfaceConsts.EventTimezone, "GMT+1:00");
eventValues.Put(CalendarContract.Events.InterfaceConsts.EventEndTimezone, "GMT+1:00");
var uriCalendar = ac.ContentResolver.Insert(CalendarContract.Events.ContentUri, eventValues);
ContentValues remindervalues = new ContentValues();
remindervalues.Put(CalendarContract.Reminders.InterfaceConsts.Minutes, ev.ReminderMinute);
remindervalues.Put(CalendarContract.Reminders.InterfaceConsts.EventId, Id);
remindervalues.Put(CalendarContract.Reminders.InterfaceConsts.Method, (int)Android.Provider.RemindersMethod.Alert);
var uriCalendarReminder = ac.ContentResolver.Insert(CalendarContract.Reminders.ContentUri, remindervalues);
}
在我的内容页面
#if __ANDROID__
GSDEvents ev = new GSDEvents();
ev.Title = "Test Event";
ev.Description = "Dit is nog een test van de beschrijving";
GSDEvents.AddEvent(ev, __THEPROBLEM HOW CAN I GET THE ACTIVITY);
#endif
有人知道如何实现我在PCL工作 希望有人能指出我正确的方向。
亲切的问候, 斯蒂芬
答案 0 :(得分:2)
您只有一项活动。主要是你在Droid应用程序中找到它。如果您需要在活动代码中专门提供一些内容,并通过Xamarin表单页面启动事件。页面与活动并不真正相关,至少不符合您的想法。
Xamarin Forms是设计上的跨平台,因此如果您无法在IOS,WP和Droid上执行此操作,则无法在Forms中执行此操作。因为很明显,在其他2个平台表格中没有任何活动没有PCL的活动概念。
我对GSDEvent的进一步帮助不太熟悉。但要做你想要的事情,你必须在你的ContentPage上发布一个事件。将代码分配给Droid项目中的活动中的事件,并在您希望它运行时将其激活到PCL中。
或者,您可以在PCL中创建一个带有事件的类,在您的droid项目中实例化它并分配事件,然后将其放入您从PCL访问的IOC容器中。
答案 1 :(得分:0)
我是用DependencyService Thnx做的:) https://developer.xamarin.com/guides/cross-platform/xamarin-forms/dependency-service/