0

我使用网络服务来获取价值,长话短说。我可以从 webservices 获取值,在这种情况下,strVersion 的值为 1(for 循环仅返回 1 条记录,因为只有 1 条记录)。

现在问题来了,结果总是返回“Wrong: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();
        }
    }
4

1 回答 1

4

使用进行String比较。equals()

改变这个:

if(strVersion[i] == "1")

if(strVersion[i].equals("1"))

阅读内容以获取更多信息。

==比较引用,而不是值。在您的情况下,您要检查值相等,而不是引用相等。

于 2012-06-20T03:06:33.147 回答