Xamarin.forms混合ContentPage和Android Activity

Ste*_*hot 8 c# android xamarin xamarin.forms

我怎样才能将两个页面混合在一起

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

我怎么知道我的.Droid项目activity呢?

让我说我有一个页面CalendarPage : ContentPage ,我在哪里注册我的机器人项目,所以我可以捕获该ActivityResult活动(ContentPage).

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

Joh*_*han 7

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

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

  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);
Run Code Online (Sandbox Code Playgroud)

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

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