我尝试制作我的第一个Android应用程序! 我用ksoap2调用web服务来获取我的帐户的详细信息。 我有一个函数返回一个Array(resultRequestSOAP)。 在resultRequestSOAP中有一个ARRAY对象。 在我的功能下面:
public Array listall(String session){
final String SOAP_ACTION = "http://www.nubio.net/soap/vps#listAll";
final String METHOD_NAME = "listAll";
final String NAMESPACE = "http://www.nubio.net/soap/vps";
final String URL = "http://www.nubio.net/soap/vps";
Array myArray = null;
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//SoapObject
request.addProperty("session",session);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try
{
androidHttpTransport.call(SOAP_ACTION, envelope);
resultRequestSOAP = envelope.getResponse();
//retour = resultRequestSOAP.toString();
if(resultRequestSOAP != null){
myArray = (Array)resultRequestSOAP;
}
}
catch (Exception aE)
{
aE.printStackTrace ();;
}
return myArray;
}
我测试函数返回字符串,它工作正常,但我需要在屏幕上显示数组。 如何在resultRequestSOAP中显示数组; ? 但是resultRequestSOAP中原来的soap返回;是:
array(
0 => Object{
vps_id : int
ip : string
hostname : string
password : string (optional)
os : string
os_arch : integer
os_distri : string
expire : string (DATE TIME)
},
...
)
所以我可以从肥皂中返回数组并显示它!? 对不起我的英语,我希望你能帮助我:) 对我来说最好只显示数组中的“主机名字符串”,因为按钮是否可能?
答案 0 :(得分:0)
不确定你的要求,但是如果你的方法返回一个对象数组,你可以像这样打印出这个对象:
for(int i=0; i < myArray.length; i++){
Object item = myArray[i];
// Put into a TextView here if you wish, just printing to console
System.out.println("Item: "+i +" IP: "+item.ip);
// or if it is private with a getter
System.out.println("Item: "+i +" IP: "+item.getIp());
System.out.println("Hostname: "+item.hostname);
System.out.println("Hostname: "+item.getHostname());
}
我认为无论如何这给了你一个想法?
答案 1 :(得分:0)
此博文可能有所帮助:http://seesharpgears.blogspot.com/2010/10/web-service-that-returns-array-of.html
查看最后一种方法。
编辑:
而不是强制转换为resultRequestSOAP
数组,您应该获得resultRequestSOAP.getPropertyCount()
的属性数,并循环显示每个对象:
SoapObject pii = (SoapObject)resultRequestSOAP.getProperty(i);
从这些对象中,您可以使用以下命令提取自己的属性(vps_id,ip,hostname ...):
vps_id = Integer.parseInt(pii.getProperty(0).toString());
等等。在示例中,他们正在构建Category对象的数组,但当然您可以使用您想要的数据。