我正在尝试将响应对象(soapobject)发送到另一个活动。
注意:我没有创建该对象,它被收到来自网络服务的响应。
我在第一个活动中的逻辑是,如果响应包含一个或多个结果,则将其发送到下一个活动以进行进一步处理(否则显示“no results
”消息)
我的问题: putExtra
不支持发送non serilaized
或non 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);
答案 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恢复为您的对象。