我想将Intent转移到Xamarin.Android中的另一个活动。基本上我需要Intent.Data和Intent.ClipData到另一个活动,所以我使用下面的代码来传输Intent,但我不知道检索它的正确方法。
以下是主要活动
中的代码Intent intent = new Intent(this, typeof(SecondActivity));
intent.PutExtra("FilesURI", 0);
intent.PutExtras(intent);
StartActivity(intent);
在SecondActivity中
if (intent.HasExtra("FilesURI"))
{
var data = (Intent)intent.Extras;
ProcessIntent(intent);
}
如何在第二项活动中检索Intent?
答案 0 :(得分:0)
这一行:intent.PutExtras(intent);
将复制所有额外的意图数据。
假设意图具有:“DATA”和“CLIPDATA”键。您可以在SecondActivity中以这样的方式检索
string text = Intent.GetStringExtra ("DATA") ?? "Data not available";
答案 1 :(得分:0)
Xamarin文档有一个页面,它提供了一个完全按照您的要求进行操作的示例,通过intent extras将数据从一个活动传递到另一个活动。
总之,您需要在接收活动中调用以下方法:
string text = Intent.GetStringExtra ("FilesURI") ?? "Data not available";
更详细的示例可以在Xamarin文档中找到,其中上面的示例是从Passing Data Between Activities
中提取的。答案 2 :(得分:0)
这是解决方案,感谢@YodaScholtz的提示。
我写了以下代码
在MainActivity中
Intent intent = new Intent(this, typeof(SecondActivity));
intent.PutExtra("ClipData", intent.ClipData);
StartActivity(intent);
SecondActivity代码
if (intent.HasExtra("ClipData"))
{
var _data = intent.Extras;
var _clipdata = (ClipData)_data?.GetParcelable("ClipData");
intent.ClipData = _clipdata;
ProcessIntent(intent);
}