Xamarin.forms 混合 ContentPage 和 Android Activity

Xamarin.forms mixing ContentPage and Android Activity

如何将两个页面混合在一起

我想做一些特定于平台的事情 (Android) OnActivityResult 但我在 Xamarin.Forms

中使用了 ContentPage

我怎么知道我的 .Droid 项目是哪个 activity

假设我有一个名为 CalendarPage : ContentPage 的页面。 在我的 droid 项目中在哪里注册它,以便我可以在 Activity(ContentPage)?

中捕获 ActivityResult

我不知道,因为我是 Xamarin.Forms 的新手,正在学习它。

Xamarin 表单在一个 activity 上运行,这与您的主要 activity.

最相似

有两个示例项目向您展示了如何在代码的本机部分和表单部分之间进行通信,可以在此处找到

  1. https://github.com/xamarin/xamarin-forms-samples/tree/master/Forms2Native
  2. https://github.com/xamarin/xamarin-forms-samples/tree/master/Native2Forms

但是,要回答您的问题,您需要执行以下操作

 private const int MyRequestCode = 101;

 //Start activity for result
 var contactPickerIntent = new Intent(Intent.ActionPick, Android.Provider.ContactsContract.Contacts.ContentUri);
 context.StartActivityForResult(contactPickerIntent, MyRequestCode);

然后在您的主要 activity(初始化您的 xamarin 表单应用程序的 activity(使用 global::Xamarin.Forms.Forms.Init(this, bundle);

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
    if (requestCode == MyRequestCode && resultCode == Result.Ok)
    {
    }
}