1

我真的看不出我哪里出了问题。任何帮助将非常感激。

我有一个JSONArray

JSONArray jsonArray = new JSONArray(responseString);

其中 responseString 是 ["prob", "2"]

我得到第一个String

String maybeProb = jsonArray.getString(0);

当我使用 Toast 展示它时,一切正常,吐司弹出窗口只是说 prob

Toast.makeText(getBaseContext(),maybeProb ,Toast.LENGTH_LONG).show();

但是当我使用if (maybeProb == "prob")它时它不会返回 true

为什么不???我究竟做错了什么???

为您提供更多详细信息:

形成原始的 responseStringJSONArray来自HttpPost我的服务器

InputStream is = null;

HttpResponse response = httpclient.execute(httppost);

HttpEntity entity = response.getEntity();

is = entity.getContent();

//Convert response to string
responseString = convertStreamToString(is);

public String convertStreamToString(InputStream inputStream) {

    StringBuilder sb = null;
    String result = null;

    try
    {           
      BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
      sb = new StringBuilder();
      String line = null;

      while ((line = reader.readLine()) != null)
      {
        sb.append(line + "\n");
      }

      inputStream.close();
      result = sb.toString();

    }
      catch(Exception e)
    {
      Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
    }

    // return the string
    return result;
}

我的服务器上做出响应的 PHP 是

$message = array("prob", "2");

$response = json_encode($message);

print($response);

非常感谢任何可以帮助我的人

4

2 回答 2

4

在java中比较对象使用.equals()方法而不是"=="运算符

替换以下代码

 if(maybeProb  == "prob") {
 }

有了这个。

 if(maybeProb.equals("prob")) {
 }
于 2013-10-15T09:02:34.790 回答
2

等号运算符 ( ==) 仅在两个对象相同时才返回 true,而不是在它们的值相同时返回 true。因此,当您将对象maybeProb"prob"它返回的对象进行比较时false

如果要进行比较,则必须使用maybeprob.equals("prob").

于 2013-10-15T09:06:08.007 回答