【问题标题】:how to show toast according to the json response?如何根据json响应显示吐司?
【发布时间】:2015-04-01 22:53:05
【问题描述】:

我正在尝试根据 json 结果显示 toast,所以当 json 结果等于 2 时,我想向用户显示他应该在不离开当前活动的情况下再次尝试,但是应用程序在json 响应为 2,这是我的代码:

class NewAccount extends AsyncTask<String, String, String> {

        /**
         * Before starting background thread Show Progress Dialog
         */
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(Register.this);
            pDialog.setMessage("Registering...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        /**
         * Creating product
         */
        protected String doInBackground(String... args) {
            String name = iname.getText().toString();
            String email = iemail.getText().toString();
            String reEmail = ireEmail.getText().toString();
            String password = ipassword.getText().toString();
            String rePassword = irePassword.getText().toString();
            String id = iid.getText().toString();
            String phone = iphone.getText().toString();
            String address1 = iaddress1.getText().toString();
            String address2 = iaddress2.getText().toString();

            // Building Parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("name", name));
            params.add(new BasicNameValuePair("email", email));
            params.add(new BasicNameValuePair("password", password));
            params.add(new BasicNameValuePair("id", id));
            params.add(new BasicNameValuePair("phone", phone));
            params.add(new BasicNameValuePair("address1", address1));
            params.add(new BasicNameValuePair("address2", address2));
            System.out.print(name.length());
            // getting JSON Object
            // Note that create product url accepts POST method
            JSONObject json = jsonParser.makeHttpRequest(url_register,
                    "POST", params);

            if(json != null) {

                // check log cat fro response
                Log.d("Create Response", json.toString());

                // check for success tag
                try {
                    int success = json.getInt(TAG_SUCCESS);

                    if (success == 1) {
                        // successfully created product
                        Intent i = new Intent(Register.this, MainPage.class);
                        startActivity(i);

                        // closing this screen
                        finish();
                    }
                    else if(success == 2){

                        Toast.makeText(getApplicationContext(), "kejfkjerfk", Toast.LENGTH_LONG).show();
                    }

                    else {
                        Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_LONG).show();
                    }
                } catch (JSONException e) {
                        e.printStackTrace();
                        }
            }

            else{

                Toast.makeText(getApplicationContext(), "An error occurred, please try again", Toast.LENGTH_LONG).show();
            }

            return null;
        }

/**
 * After completing background task Dismiss the progress dialog
 * *
 */
        protected void onPostExecute(String file_url) {
            // dismiss the dialog once done
            pDialog.dismiss();
        }

    }

【问题讨论】:

  • 请给我们您的 JSON 数据和例外情况。
  • 在这种情况下,JSON 数据是一个包含 2 个元素的数组,('success'=&gt;2, 'message'=&gt;'error')
  • 这就是你的程序在Log.d("Create Response", ...打印的内容?

标签: android json progressdialog


【解决方案1】:

您应该创建一个在成功 == 1 时结束的循环:

while (true){
    ...
    if (success == 1) {
        // successfully created product
        Intent i = new Intent(Register.this, MainPage.class);
        startActivity(i);

        // closing this screen
        finish();
        break;
    }
    else if(success == 2){
        Toast.makeText(getApplicationContext(), "kejfkjerfk", Toast.LENGTH_LONG).show();
    }
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 2014-05-13
    • 2019-10-17
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    相关资源
    最近更新 更多