OnActivityResult Xamarin.Forms

OnActivityResult Xamarin.Forms

问题:我需要访问并覆盖当前 Xamarin.Forms.Context 的 OnActivityResult。

问题:我不知道该怎么做。

我尝试了什么:我尝试扩展 Activity,但我得到一个空异常。我尝试创建一个 BaseActivity : Activity,但我不知道如何传递结果,我仍然得到一个空异常。

我的 class 看起来像这样:

public class Media : IMedia
{
        Activity context;

        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        public Media()
        {
            context = Forms.Context as Activity;

            //Check for Camera intent
            takePictureIntent = new Intent (MediaStore.ActionImageCapture);
            //context.StartActivityForResult (takePictureIntent, 0);

            //Check for gallery intent
            pickPictureIntent = new Intent();
            pickPictureIntent.SetType ("image/*");
            pickPictureIntent.SetAction (Intent.ActionGetContent);
            //context.StartActivityForResult (Intent.CreateChooser(Intent, "Select Picture"), 1);

            if (context.PackageManager.HasSystemFeature (PackageManager.FeatureCamera)) {
                IsCameraAvailable = true;
                IsPhotosSupported = true;
                IsVideosSupported = true;
            }

        }

        protected override void OnActivityResult (int requestCode, Result resultCode, Intent data)
        {
            switch (requestCode) {
            case 0:
                if (resultCode == Result.Ok) {
                    var selectedImage = data.Data;
                    //imageview.setImageUri(selectedImage);
                }
                break;
            case 1:
                if (resultCode == Result.Ok) {
                    var selectedImage = data.Data;
                    //imageview.setImageUri(selectedImage);
                }
                break;
            }
        }
}

Form.Context 与您的 MainActivity 相同。 您应该改写 MainActivity.OnActivityResult。