如何在intent中传递Custom数据对象

时间:2011-07-17 07:15:20

标签: android

我需要在intent中传递我的数据对象,以便被调用的活动可以使用它。 但没有找到方法将这些添加到意图中。

任何人都可以点亮这个

由于

4 个答案:

答案 0 :(得分:4)

只需设置自定义对象Serializable即可。然后你可以使用intent.putExtra("package.name.Name", <your-serializable-object>)。在第二个活动中,您使用getIntent().getSerializableExtra("package.name.Name")

阅读它

答案 1 :(得分:3)

您需要将数据对象设为parcelable并在意图内发送。

检查以下链接。希望它能帮助你:))

http://prasanta-paul.blogspot.com/2010/06/android-parcelable-example.html

答案 2 :(得分:3)

您可以使用putExtras

将数据附加到intent
String dataToPass = "The next activity needs this sentence.";
...
Intent intent = new Intent(this, NextActivity.class);
intent.putExtras("KeyToAccessData", dataToPass);
startActivity(intent);

并从意图中撤回

String dataToCollect;
...
Intent intent = getIntent();
dataToCollect = intent.getStringExtra("KeyToAccessData");

答案 3 :(得分:2)

您可以尝试在自定义对象类中创建一个方法,以便从json字符串创建对象,还可以创建一个将对象转换为json字符串的方法。这样,您可以将对象作为字符串传递,并在从另一个意图获得字符串时重建它。

String objectJsonString = '["name":"objName", "value":"somevalue"]';
...
Intent intent = new Intent(this.getApplicationContext(), OtherActivity.class);
intent.putExtras("KeyToAccessData", objectJsonString);
sartActivity(intent);

然后在新活动

中重新创建它
Intent i = getIntent();
CustomObj obj = CustomObj.makeFromJsonString(i.getStringExtra("KeyToAccessData"));