Xamarin.forms混合ContentPage和Android Activity

时间:2015-10-23 10:53:22

标签: c# android xamarin xamarin.forms

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

我想做一些特定平台(Android)OnActivityResult但我在Xamarin.Forms中使用ContentPage

我如何知道我的.Droid项目activity是什么?

假设我有一个名为CalendarPage : ContentPage的网页 我在哪里注册我的机器人项目,所以我可以在该活动(ContentPage)中捕获ActivityResult

我不知道,因为我是新手Xamarin.Forms并且学习它

1 个答案:

答案 0 :(得分:5)

Xamarin表单在一个活动上运行,这与您的主要活动最相似。

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

  1. https://github.com/xamarin/xamarin-forms-samples/tree/master/Forms2Native
  2. https://github.com/xamarin/xamarin-forms-samples/tree/master/Native2Forms
  3. 但是,要回答您的问题,您可以执行以下操作

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

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

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