Xamarin Forms / Android - Intent Extras is null



我正在尝试打开图像意图(从库中选择文件(,但需要传递特定的id(项目/报告id(,该id需要处理以获得意图结果。

无论我对intent选项/标志做了什么尝试,为intent添加额外的(字符串(都是有效的,但在结果中,额外的总是空的。这是相关的代码(都在主活动中(:

var imageIntent = new Intent(Intent.ActionPick);
imageIntent.SetType("image/*");
imageIntent.PutExtra(Intent.ExtraAllowMultiple, true);
imageIntent.SetAction(Intent.ActionGetContent);
imageIntent.AddFlags (ActivityFlags.GrantReadUriPermission);
if (ProjectId != null && ProjectId.ToString().Length > 0) imageIntent.PutExtra("ProjectId", ProjectId.ToString());
if (ReportId != null && ReportId.ToString().Length > 0) imageIntent.PutExtra("ReportId", ReportId.ToString());
CrossCurrentActivity.Current.Activity.StartActivityForResult(imageIntent, requestCode);

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
...
if (data.Extras != null)
{
if (data.GetStringExtra ("ProjectId") != null) int.TryParse(data.GetStringExtra("ProjectId"), out ProjectId);
if (data.GetStringExtra("ReportId") != null) Guid.TryParse(data.GetStringExtra("ReportId"), out ReportId);
}

数据。此处Extras为null。

有什么建议吗?

提前谢谢。。

数据。Extras为空

这是正确的,有两个意图。

当您使用StartActivityForResult打开Gallery时,这个imageIntent我们可以称为Intent1Intent1包含ProjectIdReportId。当您选择图像时,返回到上一个活动,系统将生成一个新的Intent,我们可以称之为Intent2Itent2只包含您选择的图像信息,它不包含ProjectIdReportId,所以OnActivityResult中的data.Extras为空。

如果你想在android项目中的任何活动或其他类中获得ProjectIdReportId信息,你可以使用SharedPreferences来实现。

如何在Xamarin.Android中使用SharedPreferences?

相关内容

  • 没有找到相关文章

最新更新