2011-06-27 33 views
7

Tôi đang sử dụng KSoap2 để gọi dịch vụ web cho ứng dụng Android của mình. Tôi đang sử dụng mã sau để gọi dịch vụ web.Android KSoap2: cách nhận tên thuộc tính

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
request.addProperty("PageSize", 20); 
request.addProperty("PageIndex", currentPage); 

SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
soapEnvelope.dotNet = true; 
soapEnvelope.setOutputSoapObject(request); 
HttpTransportSE aht = new HttpTransportSE(URL); 

try { 
    aht.call(SOAP_ACTION, soapEnvelope); 
    SoapObject result = (SoapObject) soapEnvelope.getResponse(); 

    Log.d("resBundle", String.valueOf(resBundle)); 

    int elementCount = resSoap.getPropertyCount(); 
    for(int i = 0;i<elementCount;i++){ 
    /////////////////////how to get the property name here//////////////// 
    } 

}catch (Exception e) { 
    e.printStackTrace(); 
    return null; 
} 

Tôi nhận được phản hồi từ các dịch vụ web một cách hoàn hảo. Các String.valueOf của phản ứng là dưới đây:

anyType{NewsID=2186; NewsSubject=Lil Wayne Shows Up to Heat Game With Mystery Chick & Drake; NewsDetail=Looks like Weezy found him a main chick! Lil Wayne showed off his mystery girl yet again, this time at the Miami Heat Eastern Conference Finals game. Wanye looked proud to be with his girl while he kept his arm around her for most of the game. Drake was also in attendance with Wanye and it looks like he was having a great time cheering on the Heat as they beat the Bulls in overtime. Chad Ochocinco was also spotted enjoying the game, but Evelyn was no where to be seen. Check out more pics from the Miami game:; NewsArtist=494; ModifiedDate=2011-05-26T12:03:04.567+01:00; CreateDate=26 May, 2011 12:03PM; ImageName=26052011120304.jpg; ImageAlt=anyType{}; ShortNewsDetail=Looks like Weezy found him a main chick! Lil Wayne showed off his mystery girl y; } 

Bây giờ, tôi có thể dễ dàng nhận được giá trị của tài sản một cách dễ dàng, nhưng tôi cũng muốn nhận được tài sản tên (ví dụ NewSID, NewsSubject, NewsArtist, ModifiedDate). Làm thế nào để tôi có được tên của tài sản?

Trả lời

15

Trường hợp bạn lặp lại máng câu trả lời của mình, bạn có thể truy cập vào PropertyInfo từ thuộc tính của difrent. Tôi đã sử dụng các thiết lập sau đây để có được tên của các thông số và các giá trị mà đi với họ:

//Inside your for loop 
PropertyInfo pi = new PropertyInfo(); 
resSoap.getPropertyInfo(i, pi); 
Log.d(TAG, pi.name + " : " + resSoap.getProperty(i).toString()); 

Điều này tạo ra một đối tượng PropertyInfo, cho biết thêm các thông tin từ các tài sản trong đối tượng đó và sau đó cung cấp cho bạn truy cập vào tất cả điều này thông tin. Và sau đó in nó vào LogCat của bạn ở định dạng tắt "propertyname: propertyvalue"

Các vấn đề liên quan