如何在Activities之间传递对象实例

时间:2014-02-13 11:45:34

标签: android android-intent

我正在尝试将响应对象(soapobject)发送到另一个活动。

注意:我没有创建该对象,它被收到来自网络服务的响应。

我在第一个活动中的逻辑是,如果响应包含一个或多个结果,则将其发送到下一个活动以进行进一步处理(否则显示“no results”消息)

我的问题: putExtra不支持发送non serilaizednon parcelable object

错误讯息: The method putExtra(String, boolean) in the type Intent is not applicable for the arguments (String, SoapObject)

这是我的代码有什么建议吗?

SoapObject soapResponse =  soaphttp.fetchNextCatalogueRange(0, numberOfItems);
Intent ResultsActivityIntent = new   Intent(MainActivity.this,SearchResultsActivity.class);
// Send data object with the Intent
ResultsActivityIntent.putExtra("ResultObj",  soapResponse);
startActivity(ResultsActivityIntent);

2 个答案:

答案 0 :(得分:1)

创建常量类

在该类中创建SoapObject,如。

 Class Constant
 {
   public static SoapObject sopObj=null;
 }

然后在这里,

 SoapObject soapResponse =  soaphttp.fetchNextCatalogueRange(0, numberOfItems);
   Intent ResultsActivityIntent = new   Intent(MainActivity.this,SearchResultsActivity.class);

//使用Intent

发送数据对象
  Constant.sopObj=soapResponse;

      startActivity(ResultsActivityIntent);

在你的下一堂课

get that soapObject value like this,

  SoapObject sopObject=Constant.sopObj;

soo simple ...

答案 1 :(得分:0)

还有另一种选择...使用Gson并将您的对象转换为json-String,将它通过Bundle-String传递给您的活动,并再次使用Gson将其从json-String恢复为您的对象。