首页 > 解决方案 > 对象的 ArrayList 未在新的 ArrayList 对象中设置

问题描述

 try {
                    JSONObject jsonObject = new JSONObject(botResponse.getResponseStringUrl());
                    JSONArray array = jsonObject.getJSONArray("value");
                    for (int i = 0; i < array.length(); i++) {                        
                        JSONObject jo = array.getJSONObject(i);
                        String seq = jo.getString("sequenceNo");
                        Log.d("sequenceNo", seq + "iteration" + i);

                        lo = new ListObject();

                        lo.setStaffID(jo.getString("staffID"));
                        lo.setStatus(jo.getString("status"));
                        lo.setSequenceNo(jo.getString("sequenceNo"));
                        lo.setReason(jo.getString("reason"));
                        lo.setFrom(jo.getString("from"));
                        lo.setDays(jo.getString("days"));
                        lo.setLeaveType(jo.getString("leaveType"));
                        lo.setTo(jo.getString("to"));
                        lo.setName(jo.getString("name"));

                        developersLists.add(lo);
                        botresponselist.add(lo);                         
                    }
                    message.setMessageList(botresponselist);
                    message.setDevelopersList(developersLists);

     }

developerlist 的所有多个值均未在 message.setDevelopersList 中设置。因为 setDevelopersList 是在消息类中创建的新数组列表。只有第一个对象被设置,而不是所有对象。但对象 lo 显示多个值。先感谢您

标签: android

解决方案


问题是您正在创建 ListObject 的新实例并保存在同一个变量中,因此它将只存储一个值。您必须在 for 循环中创建一个新的 ListObject 实例。

只需在 for 循环中添加它,而不是在 for 循环之外声明 ListObject。

 ListObject lo = new ListObject();

推荐阅读