几个JSONObject键和值不会保存到Parse

我有一个checkbox的适配器类,当checkbox被选中时,它将一个JSONObject键和值parsing。 在我的应用程序中,它只保存一个键和值作为JSONObjectparsing,我希望我的应用程序在select其他checkbox时将几个键和值保存到parsing中。

当我select不同的checkbox时,它会更改单个键和值,而不是将另一个集添加到JSONObject

Parse内的行的照片,包括JSONObject

相反,我想在Parse中的JSONObject保存这样的数据时,其他checkbox与不同的键和值被选中。

{"2c1":true, "2c2":true, "2c3":true, "2c4":true, "2c5":true, "2c6":true} 

而不是只有这一个人

 {"2c1":true} 

这是我的Adapter类中的代码

ChecklistAdapter.java

  final JSONObject myObject = new JSONObject(); try { myObject.put(dataRecord.getID(), true); } catch (JSONException e) { e.printStackTrace(); } checkBox.setOnClickListener(new View.OnClickListener() { String idSelected = dataRecord.getID(); public void onClick(View v) { if (((CheckBox) v).isChecked()) { ParseUser.getCurrentUser().put("checklistData", myObject); ParseUser.getCurrentUser().saveInBackground(); Toast.makeText(getContext(), idSelected, Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getContext(), "CheckBox is unchecked", Toast.LENGTH_SHORT).show(); } } }); 

提供的function代码只保存键和值对。

编辑:如果您对Toast在单击此处的checkbox时所做的操作感到好奇。

在这里输入图像说明

  • Logcat错误信息 - 尝试销毁非零计数的屏障
  • parsing匿名类不实现抽象方法
  • 如何从Parse.com检索超过1000行?
  • 如何在Cordova / Phonegap上使用GoogleloginAPI
  • PARSE:推送通知“deviceToken”未定义
  • saveInBackgroundcallback不起作用
  • 发送到Android设备的额外推送通知
  • getApplicationContext()方法未定义 - 片段问题
  •  final JSONObject myObject = new JSONObject(); checkBox.setOnClickListener(new View.OnClickListener() { String idSelected = dataRecord.getID(); public void onClick(View v) { if (((CheckBox) v).isChecked()) { try { myObject.put(dataRecord.getID(), true); } catch (JSONException e) { e.printStackTrace(); } ParseUser parseUser= ParseUser.getCurrentUser(); parseUser.put("checklistData", myObject); parseUser.saveInBackground(); Toast.makeText(getContext(), idSelected, Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getContext(), "CheckBox is unchecked", Toast.LENGTH_SHORT).show(); } } }); 

    在您的OnClickListener中,您不会更新要发送到parsing数据库的对象。 所以你发送到你的parsing数据库的对象没有得到更新。 这些数据仅在您的OnClickListener之外为您的JSON对象设置一次。

    问题解决了

    编辑(S):

      checkBox.setOnClickListener(new View.OnClickListener() { String idSelected = dataRecord.getID(); public void onClick(View v) { if (((CheckBox) v).isChecked()) { JSONObject myObject; myObject = ParseUser.getCurrentUser().getJSONObject("checklistData"); try { myObject.put(dataRecord.getID(), true); } catch (JSONException e) { e.printStackTrace(); } ParseUser parseUser= ParseUser.getCurrentUser(); parseUser.put("checklistData", myObject); parseUser.saveInBackground(); Toast.makeText(getContext(), idSelected, Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getContext(), "CheckBox is unchecked", Toast.LENGTH_SHORT).show(); } } }); return convertView; }