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.
最相似
有两个示例项目向您展示了如何在代码的本机部分和表单部分之间进行通信,可以在此处找到
- https://github.com/xamarin/xamarin-forms-samples/tree/master/Forms2Native
- 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)
{
}
}
如何将两个页面混合在一起
我想做一些特定于平台的事情 (Android) OnActivityResult
但我在 Xamarin.Forms
我怎么知道我的 .Droid 项目是哪个 activity
?
假设我有一个名为 CalendarPage : ContentPage
的页面。
在我的 droid 项目中在哪里注册它,以便我可以在 Activity(ContentPage)?
ActivityResult
我不知道,因为我是 Xamarin.Forms 的新手,正在学习它。
Xamarin 表单在一个 activity 上运行,这与您的主要 activity.
最相似有两个示例项目向您展示了如何在代码的本机部分和表单部分之间进行通信,可以在此处找到
- https://github.com/xamarin/xamarin-forms-samples/tree/master/Forms2Native
- 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)
{
}
}