.我是 Android 新手,我正在使用教程来了解更多信息。我正在尝试使用 PHP 和 JSON 在带有远程服务器的 Android 中创建登录页面。下面是我一直在尝试登录的功能。我的问题是,每当我输入错误的用户名和密码(当然是故意的)时,当我接下来使用正确的登录信息时,应用程序就会被强制关闭。我认为这是因为当使用错误的登录信息时 JSON 返回 null 。从那里,我不知道如何处理空返回。我尝试阅读 looper 和 Async 但仍然没有运气。
void login() {
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("username", EtUsernameInput.getText().toString()));
postParameters.add(new BasicNameValuePair("password", EtPasswordInput.getText().toString()));
String response = null;
try {
response = CustomHttpClient.executeHttpPost("http://xxx.xxx.xxx.xxx/xxx/xxx/activity1a.php",
postParameters);
String result = response.toString();
try {
returnString = "";
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++) {
JSONObject json_data = jArray.getJSONObject(i);
Log.i("log_tag","student_id: "+ json_data.getString("student_id") + ", first_login: "+ json_data.getString("s_first_login"));
String first_login = json_data.getString("s_first_login");
}
} catch(JSONException e) {
Log.e("log_tag", "Error parsing data "+e.toString());
}
if (first_login.equals("") || first_login.equals(null)) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(Activity1_Login.this, "User not found.", Toast.LENGTH_SHORT).show();
}
});
} else
startActivity(new Intent(Activity1_Login.this, Activity2_Main.class));
} catch (Exception e) {
Log.e("log_tag","Error in http connection!!" + e.toString());
}
}
有没有办法让我回到程序的开头,每当使用错误的登录信息时都会询问登录信息?提前感谢您的帮助/建议。