0

我正在尝试使用 kSOAP2 将字符串数组从 Web 服务发送到 android 应用程序。使用 kSOAP2,我在 android 端收到对象格式的响应。现在我想将此对象转换为字符串数组格式,以便我可以将此数组直接传递给 GridView。

我的Web服务方法如下:

[WebMethod]
public string[] getit(string status)
{
   string[] result;
   if (status == "blue")
      result = new string[] { "One", "Two", "Three", "Four" };
   else
      result = new string[] { "five", "six", "Seven", "Eight" };
   return result;
}

我的安卓代码如下:

public void call(String status)
{
   try {    
       SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

       request.addProperty("status",status.toString());

       SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
       envelope.dotNet=true;
       envelope.setOutputSoapObject(request);

       HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
       androidHttpTransport.call(SOAP_ACTION, envelope);

       Object result = (Object)envelope.getResponse();

       array1=(String []) result;   //This statement does not work
   } 
}

在 android 代码中,array1 是全局声明的字符串数组。字符串数组1[]; 我想将 Object 结果转换为 array1 String 数组。提前致谢。

4

2 回答 2

1

现在我想不出一个很好的例子。您应该检查返回的对象。但我猜它是一个内部有属性的 SoapObject

SoapObject result = (SoapObject)envelope.getResponse();

那么我想如果你打电话

String s = (String)result.getProperty(0);

您将获得返回数组的第一个元素。

当然,您应该进行必要的错误处理。

于 2012-07-24T12:30:36.910 回答
0

首先使用 result.toString().... 打印“结果”对象并查看它返回的内容,然后它不会直接转换为 string[] 首先它应该转换为 Object[] 数组...和一个一个它将转换为 string[] 数组......所以你的代码应该像......

对象[] objArr=(对象[])结果;

字符串[] strArr=新字符串[objArr.length];

for(int i=0;i<=objArr.length;i++)

{

  strArr[i]=objArr[i].toString();

}

这就是你可以做到的......

于 2012-07-24T10:30:41.220 回答