2015-12-09 4 views
1

Проблема: Мне нужно получить доступ и переопределить OnActivityResult для текущего Xamarin.Forms.Context.OnActivityResult Xamarin.Forms

Вопросы: Я не знаю, как это сделать.

Что я пытался: Я пробовал расширять Activity, но я получаю пустое исключение. Я попытался создать BaseActivity : Activity, но я не знаю, как передать результат, и я все равно получаю пустое исключение.

мой класс выглядит примерно так:

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; 
      } 
     } 
} 

ответ

1

Form.Context такое же как ваш MainActivity. Вместо этого вы должны переопределить свой MainActivity.OnActivityResult.