Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想写一个固定值的变量JSON_Java_Android_Json - Fatal编程技术网

Java 我想写一个固定值的变量JSON

Java 我想写一个固定值的变量JSON,java,android,json,Java,Android,Json,所以我的问题是: holder.buttonViewID.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { if(isChecked){

所以我的问题是:

holder.buttonViewID.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
                if(isChecked){
                    toggle.setCompoundDrawablesWithIntrinsicBounds(null, rmfcart , null, null);
                    try {
                        pack.put("imgid", resID2);
                        pack.put("desc", descval);
                        Log.d("PERSODEBUG", pack.toString());
                        trolly.put(itemID, pack.toString());
                        Log.d("PERSODEBUG", trolly.toString());
                    } catch (JSONException e) {
                        e.printStackTrace();
                        }
                }
[...]
背包和手推车是JSONObject, trolly表现得非常好,我可以向它添加项目并删除它们。它的表现与预期一致,但问题在于pack。随着每一次更改,已经添加到trolly的所有包实例都会得到修改。 例如:

if i add an item to trolly:
{"2":{"imgid":2131165314,"desc":"test1"}}
if i add a 2nd item:
{"2":{"imgid":2131165330,"desc":"test2"},"3":{"imgid":2131165330,"desc":"test2"}}
正如你看到的,旧的和新的pack实例在trolly中都得到了修改, 有人能告诉我如何在trolly中编写一个固定的包实例字符串来避免这个问题吗?我确实尝试过一些事情,比如, 正如您在上面看到的,toString()没有任何效果


非常感谢

您应该在每次添加包之前创建新的包实例,而不是全局实例

JSONObject pack = new JSONObject(); // new instance
pack.put("imgid", resID2);
pack.put("desc", descval);
Log.d("PERSODEBUG", pack.toString());
trolly.put(itemID, pack.toString());

不要在每个
pack
中使用相同的
resID2
descval