android - JSONArray 中的项目总和在活动重新启动时翻倍
问题描述
我正在使用 Fast Android Networking 库来解析JSONArray
从我的 PHP/MySQL API 生成的。我正在使用 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();
}
});
}
我究竟做错了什么?
解决方案
你不能在循环之前让你的变量为零吗?
推荐阅读
- python-3.x - 熊猫,如何使用带有多索引数据框的子集删除值?
- scala - 匹配表达式后,for循环不返回列表中的值
- javascript - 如何使模态窗口的标题固定在顶部
- java - 如何在 QueryDSL 中为时差创建 OrderSpecifier?
- java - 如何显示数组以显示整数?
- asp.net - 响应中返回的输入(反映)asp.net 漏洞
- java - 无法实现用于 Javers 比较的自定义比较器
- windows - Jenkins 无法执行 Browserstacklocal 二进制文件并挂起
- scala - 我应该缓存还是不缓存我的统一数据帧?
- visual-studio - 如何将 CMake-QT 生成的 MOC 保存在单个 obj 文件中?