我使用网络服务来获取价值,让长话短说。我可以从webservices获取值,对于这种情况,strVersion的值是1(for循环只返回1条记录,因为只有1条记录)。
现在问题是,结果总是返回“错误:1”而不是“OK:1”,有人请告诉我为什么? MYSQL中该字段的数据类型是Varchar。
AndroidHttpTransport aht = new AndroidHttpTransport(URL);
aht.call(SOAP_ACTION, soapEnvelope);
SoapObject resultString = (SoapObject) soapEnvelope.getResponse();
final String[] strVersion = new String[resultString.getPropertyCount()];
for(int i =0; i<resultString.getPropertyCount(); i++)
{
SoapObject array = (SoapObject) resultString .getProperty(i);
strVersion[i] = array.getProperty(0).toString();
if(strVersion[i] == "1")
{
Toast.makeText(getApplicationContext(), "OK: " + strVersion[i], Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(), "Wrong: " + strVersion[i], Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:4)
使用String
进行equals()
比较。
改变这个:
if(strVersion[i] == "1")
到
if(strVersion[i].equals("1"))
阅读this了解详情。
==
比较参考,而不是值。在您的情况下,您要检查值相等,而不是引用相等。