从SoapObject获取布尔值(kSOAP2)

use*_*800 2 android boolean ksoap2

我试图从SoapObject获取一个布尔值,我是从Android中使用kSOAP2的Web服务器的响应得到的...

我已经在SoapObject中保存了Web调用的响应:

SoapObject sResult = (SoapObject)envelope.bodyIn;
Run Code Online (Sandbox Code Playgroud)

我正在迭代响应并抓住值

SoapObject soapresults = (SoapObject)sResult.getProperty(0);

for (int i = 0; i < count; i++)
{
    SoapObject mail = (SoapObject)soapresults.getProperty(i);

    /*Getting the values here*/   
}
Run Code Online (Sandbox Code Playgroud)

邮件SoapObject将类似于:

MessageInstance = anyType的{AUTHORNAME =Børnehaven; CreatedAtUtc = 2012-04-10T18:30:00; ID = 631; MessageBody = Husk i morgen; 收件人= {anyType的全名= NULL; ID = 2104535421; IsRead = TRUE; ReadAtUtc = 2012-04-10T18:30:00; }; };

而我遇到的唯一值就是"IsRead"值,我希望将其存储为布尔值...

我尝试过几件事:

(Boolean)mail.getProperty("IsRead");
((Boolean) mail.getProperty("IsRead")).booleanValue();
Run Code Online (Sandbox Code Playgroud)

但我一直在:

W/System.err(1283):java.lang.RuntimeException:非法属性:IsRead

获得它的正确方法是什么?

Ogu*_*glu 7

试试这段代码:

SoapObject soRecipient = (SoapObject) mail.getProperty("Recipient");

boolean isRead = Boolean.parseBoolean(soRecipient.getPropertyAsString("IsRead"));
String fullName = soRecipient.getPropertyAsString("FullName");
String id = soRecipient.getPropertyAsString("Id");
String readAtUtc = soRecipient.getPropertyAsString("ReadAtUtc");
Run Code Online (Sandbox Code Playgroud)