1

我有一个有趣的问题,我已经尝试了 3 个小时。我正在 Android 中创建一个登录页面。我将使用 HttpClient 的用户名和密码值发送到我的 PHP 页面,我会得到真实的结果,直到看到下面的一些代码。

button_login_submit.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
                postParameters.add(new BasicNameValuePair("username", et_username.getText().toString()));
                postParameters.add(new BasicNameValuePair("password", et_password.getText().toString()));

                String response = null;
                try 
                {
                    response = CustomHttpClient.executeHttpPost("http://10.0.2.2/corner1/login.php", postParameters);
                    String res=response.toString();
                    //here, the value of "res" variable is the exactly what I want. 
                    if(!res.equals("0")) // but in here, the value of "res.equals("0")" is always false. So  the value of inside if is always true!! but why????
                    {
                        if(!res.equals("01"))
                        {
                            tv_login_error.setText("Success");
                            Intent main_page = new Intent(getApplicationContext(), Main_Activity.class);
                            main_page.putExtra("id",res);
                            //startActivity(main_page);
                            //finish();
                        }
                        else
                        {
                            tv_login_error.setText("False Username or Password");
                        }
                    }
                    else
                    {
                        tv_login_error.setText("Please try again using your full usurname or password ");
                    }
                } 
                catch (Exception e) 
                {
                    tv_login_error.setText(e.toString());
                }
            }
        }); 

如果“res”的变量为“0”,表示有一些空值。如果是 "01" 则没有用户,否则 PHP 页面会向我发送用户 ID。为什么 "res.equals("0") 总是假的???

问题解决了!!!!问题是来自代码的 res 的值String res=response.toString();带有“\n”。所以当你想比较值时,你必须在单词末尾添加“\n”。例如res.equals("0\n")

4

1 回答 1

0

您必须在使用之前修剪该值。更改String res=response.toString();String res=response==null?null:response.trim();。它将解决您的问题。

于 2013-02-07T12:02:43.347 回答