在Xamarin中,如何将用户定义的对象(我写的类)传递给不同的活动?将对象传递给新活动
我想传递的对象是一个列表,名为项目:
_mapLocationList[0]
的产品类型:
MapLocation
这里是我当前的代码:
intent.PutExtra ("MapLocation", _mapLocationList[0]);
上面的方法可以用来传递一个对象吗?如果没有,我该怎么做?
预先感谢
在Xamarin中,如何将用户定义的对象(我写的类)传递给不同的活动?将对象传递给新活动
我想传递的对象是一个列表,名为项目:
_mapLocationList[0]
的产品类型:
MapLocation
这里是我当前的代码:
intent.PutExtra ("MapLocation", _mapLocationList[0]);
上面的方法可以用来传递一个对象吗?如果没有,我该怎么做?
预先感谢
传递对象到Activity
的最简单的方法是使用Intent
秒。为此,你需要你的班级implement
Serializable
或Parcelable
。
这样,您就可以通过putExtra("myobject", object)
方法将您的对象放在Intent
中,然后在其他Activity
中用getSerializableExtra("myobject")
恢复它。
例如:
在第一Activity
:
final Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("my_class", your_maplocation_object);
startActivity(intent);
然后在你的第二Activity
,你会怎么做:
final Intent passedIntent = getIntent();
final MapLocation my_class = (MapLocation) passedIntent.getSerializableExtra("my_class");
还有一种更简单,很愉快的方式:使用Googe GSON库。
序列化的活动答:
intent.putExtra("mapLocExtra", new Gson().toJson(myMapLocationObject,MapLocation.class);
startActivity(intent);
*** Deserialisation在活动B:*
@Oncreate(...){
String mapLocJson= getIntent().getExtra("mapLocExtra").toString();
MapLocation mylocationObject= new Gson().fromJson(maplocJson,MapLocation.Class);
//do Stuff With mylocationObject
}
好主意,但不会与GSON工作。将其替换为ServiceStack.Text或Json.NET序列化程序。他使用Xamarin ...;) – SKall