1

我在字符串变量中得到 JSON 字符串响应。我想在“if”语句中进行比较。但是程序不能进入“if”语句。但它会在 TextView 中显示响应。

这是我的 if 语句

  if (myObjAsString == "WRONG_PASS_ERROR") { //USER_EXISTS_ERROR //WRONG_PASS_ERROR

                                Toast.makeText(MainActivity.this, "Login Invalid", Toast.LENGTH_LONG).show();
                            }

这是我的代码。

String url = "http://someexample.com/signin.php";
        StringRequest postRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {


                            JSONObject jsonResponse = new JSONObject(response);
                            String myObjAsString = jsonResponse.getString("type");

                            if (myObjAsString == "WRONG_PASS_ERROR") { //USER_EXISTS_ERROR //WRONG_PASS_ERROR

                                Toast.makeText(MainActivity.this, "Login Invalid", Toast.LENGTH_LONG).show();
                            }

                            mTV.setText(myObjAsString);

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        error.printStackTrace();
                    }
                }
        ) {
            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<>();
                // the POST parameters:
                params.put("email", "example@outlook.com");
                params.put("password", "*****");
                return params;
            }
        };
        Volley.newRequestQueue(this).add(postRequest);
4

3 回答 3

1

使用equals. 对象比较在java中是这样完成的。

if (myObjAsString.equals("WRONG_PASS_ERROR"))

甚至这将防止npe:

if ("WRONG_PASS_ERROR".equals(myObjAsString))

于 2015-09-08T11:16:05.493 回答
0

为了比较字符串,您不使用“==”运算符,而是使用 equals() 方法。例如:if(string1.equals(string2))

于 2015-09-08T11:16:29.273 回答
0

使用下面的代码。

if (myObjAsString.equals("WRONG_PASS_ERROR")) // Change this condition
{ 
      Toast.makeText(MainActivity.this, "Login Invalid", Toast.LENGTH_LONG).show();
}
于 2015-09-08T11:16:47.157 回答