0

.我是 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()); 
    }      
} 

有没有办法让我回到程序的开头,每当使用错误的登录信息时都会询问登录信息?提前感谢您的帮助/建议。

4

2 回答 2

0

看看这个:JSON, PHP, MySQL with AsyncTask ProgressDialog

于 2013-09-19T07:38:00.350 回答
0

更改此行:

 if (first_login == "") 

有了这个

 if (first_login.equals("")||first_login.equals(null))
于 2013-09-19T08:08:16.817 回答