loo*_*oop 6 c# android xamarin
我想Class Object在Xamarin.Androidapp 中将一个活动传递给另一个活动.我可以使用Intent.PutExtra方法传递简单的字符串.
有人知道吗.感谢anyhelp :)
kev*_*ree 12
只是添加以防其他人遇到这个.关于Xamarin/.NET的好处是使用JSON是多么容易.您可以将数据序列化为字符串并通过Extras传递.
JSON.NET是一个很好的库(你可以在Xamarin组件商店找到),并且在.NET中也有一些内置的JSON类.使用JSON.NET的一个例子是这样的.
Intent i = new Intent(Application.Context, typeof(SecondActivity));
i.PutExtra("key", JsonConvert.SerializeObject(myObject));
StartActivity(i);
Run Code Online (Sandbox Code Playgroud)
另一方面,Activity你可以反序列化它.
var obj = JsonConvert.DeserializeObject<OBJ_TYPE>(Intent.GetStringExtra("key"));
Run Code Online (Sandbox Code Playgroud)
在我看来,这比使用静态参考更好.
该概念与标准(非 Xamarin)应用程序相同。
您可以用来Intent#putExtra(String, Parcelable)传递任何实现该Parcelable接口的对象作为额外的对象。
该Parcelable接口有点复杂,因此请务必阅读文档以确保您的类符合要求。您可能还想查看这个 SO 问题以获取有关创建类的更多信息Parcelable。
您不能通过 传递对象引用Intent。这是因为活动被设计为彼此完全独立地工作。用户可以在执行其他任务时将您的 Activity 置于后台,因此您的 Activity 的变量完全有可能(而且很有可能)被垃圾收集。当用户稍后返回您的 Activity 时,它应该能够重新创建其状态。
如果确实需要直接传递对对象的引用,可以通过将该对象设置为静态变量来实现。虽然这是解决从一个 Activity 向另一个 Activity 获取数据的问题的一种快速而肮脏的方法,但它并不能解决变量在某些时候可能被垃圾收集的问题,并且通常是一个糟糕的设计选择。
| 归档时间: |
|
| 查看次数: |
7091 次 |
| 最近记录: |