重新启动活动后JSONArray中的项目总数加倍

时间:2018-07-27 10:43:13

标签: android arrays networking

我正在使用快速Android网络库来解析从我的PHP / MySQL API生成的JSONArray。我正在使用for循环求和JSONArray中的所有整数值。当我第一次启动将数据发送到的活动(作为静态引用)时,一切工作都很好,但是在重新启动时,数据会加倍,即如果首次启动时的总和为500,则在重新启动时返回1000。

这是我用来解析JSONArray的方法

public void getGroupStats() {
    MaterialDialog.Builder builder = new MaterialDialog.Builder(Splash.this)
            .progress(true, 100)
            .content("Loading...")
            .cancelable(false);
    dialog = builder.build();
    dialog.show();

    AndroidNetworking.post(Helper.Header + "/savings/api/Api.php?apicall=getgroups")
            .addBodyParameter("goal", sharedPreferences.getString("Goal", ""))
            .addBodyParameter("type", sharedPreferences.getString("Type", ""))
            .setPriority(Priority.MEDIUM)
            .build()
            .getAsJSONObject(new JSONObjectRequestListener() {
                @Override
                public void onResponse(JSONObject response) {
                    JSONArray jsonArray = null;

                    try {
                        jsonArray = response.getJSONArray("savings");
                        for (int j = 0; j < jsonArray.length(); j++) {
                            obj = (JSONObject) jsonArray.get(j);
                            groupsaving += Integer.parseInt(obj.getString("saving"));
                            groupsaved += Integer.parseInt(obj.getString("saved"));
                            Helper.Members = jsonArray.length();
                        }

                        Intent intent = new Intent(Splash.this, Statistics.class);
                        intent.putExtra("Title", textView.getText().toString());
                        if (textView.getText().toString().contains("SAVVY SAVER")) {
                            Helper.Image = "smallest_bag";
                        } else if (textView.getText().toString().contains("POWER SAVER")) {
                            Helper.Image = "small_bag";
                        } else if (textView.getText().toString().contains("SUPER SAVER")) {
                            Helper.Image = "big_bag";
                        } else {
                            Helper.Image = "biggest_bag";
                        }
                        startActivity(intent);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    Helper.GroupSaving = groupsaving;//to be used in next activity
                    Helper.GroupSaved = groupsaved;

                    Toast.makeText(getApplicationContext(), String.valueOf(groupsaved) + " " + String.valueOf(groupsaving), Toast.LENGTH_LONG).show();
                    dialog.cancel();
                }

                @Override
                public void onError(ANError error) {
                    Toast.makeText(getApplicationContext(), error.toString(), Toast.LENGTH_LONG).show();
                    dialog.cancel();
                }
            });
}

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

想让您在循环之前将变量设为零吗?