1
我有一個有趣的問題,我一直試圖找出3個小時..我正在Android的登錄頁面。我將用戶名和密碼的值與HttpClient一起發送到我的PHP頁面,並且直到看到一些代碼如下。HttpClient與Android
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" )始終是假???
問題迎刃而解!!!! 問題是,它是從String res=response.toString();
代碼來RE的值與未來「\ n 」所以當你想要比較值,你必須添加‘\ n’字的結尾。例如res.equals("0\n")
你確定''res.equals(「0」)總是false嗎?或者你剛剛得到異常,你的代碼在捕獲範圍內結束...... – Selvin
實際上我已經意識到「res」變量很奇怪。因爲當我寫'res = 0'或'res =「3'時一切都很好,但是來自'String res = response.toString();'代碼的res變量是不同的!當我試圖顯示值在應用程序中,我可以看到res的真實結果,但是在代碼中,我總是去if的第一個塊,所以在代碼中res的值與我想要的不同,但它是真的在應用程序! –