Xamarin.forms mixing ContentPage and Android Activity

11,544

Xamarin forms runs on one activity, which is most like your main activity.

There are two sample projects that show you how to communicate between native and form parts of the code, which can be found here

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

However, to answer your question, you would do something like the following

 private const int MyRequestCode = 101;

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

and then in your main activity (the activity that initializes your xamarin forms application (using global::Xamarin.Forms.Forms.Init(this, bundle);)

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
    if (requestCode == MyRequestCode && resultCode == Result.Ok)
    {
    }
}
Share:
11,544
Stefan van de Laarschot
Author by

Stefan van de Laarschot

Software Developer from the Netherlands Pure Passion And Self Learning ! My Skills: VB.net, C#, Xamarin Forms, IOS, Android, MSSQL, JQuery, Javascript

Updated on June 19, 2022

Comments

  • Stefan van de Laarschot
    Stefan van de Laarschot almost 2 years

    How can I mix both pages together

    I want to do something platform specific (Android) OnActivityResult but I use a ContentPage in Xamarin.Forms

    How do I know in my .Droid project which activity it is?

    Lets say I have a page called CalendarPage : ContentPage. Where do I register it in my droid project so I can catch the ActivityResult in that Activity(ContentPage)?

    I have no clue since I'm new to Xamarin.Forms and learning it.