【发布时间】:2018-07-04 10:41:30
【问题描述】:
我在此列表零售商对象中收到响应。
List<Retailers> retailers;
例如:retailers.getId() 返回1,2,3,4,5,6,7,8 作为响应,这很好用。
现在我需要将其存储在另一个 List 中并将其传递给 params。但只有第一个值1 在所有情况下都被存储。
下面是我的代码
List<RoutePlanDayRequests> routePlanDayRequests = new ArrayList<RoutePlanDayRequests>();
RoutePlanDayRequests requests = new RoutePlanDayRequests();
for(int i= 0; i<retailers.size();i++){ //retailers is already having datas.
Log.e("retailers",retailers.get(i).getId()); //here i am getting 1,2,3,4,5
requests.setPartnerId(retailers.get(i).getId());
routePlanDayRequests.add(requests); //but while storing i get only 1.
updateServiceList(AppUtils.getMsisdn(mSharedPreferences), routePlanDayRequests);
}
输出响应:
[{"Id":"1"},{"Id":"1"},{"Id:"1"},{"Id":"1},{"Id":"1" },{"Id":"1"},{"Id":"1"}]
相反,它应该获取所有元素(retailers.getId 中的1,2,3,4,5)并将其传递给参数。
有人知道为什么会这样吗?
【问题讨论】:
-
你需要在你的循环中
RoutePlanDayRequests requests = new RoutePlanDayRequests(); -
你知道“按引用传递”和“按值传递”的区别吗?
标签: java android list android-arrayadapter