将对象传递给新活动

时间:2014-01-23 07:31:39

标签: android android-intent android-activity xamarin

在Xamarin中,如何将用户定义的对象(我编写的类)传递给其他活动?

我希望传递的对象是List中名为:

的项目
_mapLocationList[0]

该项目的类型为:

MapLocation

这是我目前的代码:

intent.PutExtra ("MapLocation", _mapLocationList[0]);

上面的方法可以用来传递一个对象吗?如果没有,我该怎么做?

提前致谢

2 个答案:

答案 0 :(得分:1)

将对象传递给Activity的最简单方法是使用Intent s。为此,您需要将您的课程设为implement SerializableParcelable

这样,您可以通过Intent方法将对象放入putExtra("myobject", object),然后通过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");

答案 1 :(得分:0)

有一种更简单,更愉快的方式:使用Googe GSON库。

活动A中的序列化:

intent.putExtra("mapLocExtra", new Gson().toJson(myMapLocationObject,MapLocation.class);
startActivity(intent);

***活动B中的反序列化:*

@Oncreate(...){

String mapLocJson= getIntent().getExtra("mapLocExtra").toString();
MapLocation mylocationObject= new Gson().fromJson(maplocJson,MapLocation.Class);

//do Stuff With mylocationObject
  }

更多信息:https://code.google.com/p/google-gson/