【发布时间】:2015-12-14 02:39:07
【问题描述】:
I have an adapter class with a checkbox and when the checkbox is selected it pushes a JSONObject key and value to Parse.在我的应用程序中,它只将一个键和值作为 JSONObject 保存到 Parse,我希望我的应用程序在选择其他复选框时将多个键和值保存到 Parse。
当我选择不同的复选框时,它会更改单个键和值,而不是向 JSONObject 添加另一个集合
Photo of the row inside Parse including the JSONObject
相反{"2c1":true, "2c2":true, "2c3":true, "2c4":true, "2c5":true, "2c6":true}
而不是仅仅拥有这个
{"2c1":true}
这是我的适配器类中的代码
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();
}
}
});
提供的功能代码只是保存键值对。
编辑:如果您对单击此处的复选框时 Toast 的作用感到好奇。
【问题讨论】:
-
在setOnclickListener里面,你已经添加了myObject,myObject好像没有被修改,期待第一次只添加一个值。
-
@TheNeoNoirDeveloper 如何将 Parse 中的现有 JSONObject 添加到
myObject? -
if (((CheckBox) v).isChecked()) { myObject.put(dataRecord.getID(), true); ParseUser.getCurrentUser().put("checklistData", myObject);}
-
@TheNeoNoirDeveloper 没用 :( 和你做的一模一样
-
所以你将一个具有多个键/值对的对象放入解析对象中,保存,然后只看到其中一个键/值对?您检查过
.put("checklistData", myObject);中设置的内容吗?我敢打赌那里只有一个键/值对,可能是检查的最后一项。
标签: java android json parse-platform