几个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时所做的操作感到好奇。

在这里输入图像说明

Solutions Collecting From Web of "几个JSONObject键和值不会保存到Parse"

 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; }