我有一个有趣的问题,我已经尝试了 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")