我在此列表零售商对象中收到回复。
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”}]
相反,它应该从1,2,3,4,5
获取所有元素(retailers.getId
)并将其传递给params。
有人知道为什么会这样吗?
答案 0 :(得分:0)
您必须在循环中创建RoutePlanDayRequests
并将所有收集到的数据(在循环外)发送到updateService
List<RoutePlanDayRequests> routePlanDayRequests = new ArrayList<RoutePlanDayRequests>();
// you can use the simpler syntax of the for-loop
for(Retailer retailer : retailers) {
// create the requests object in the loop
RoutePlanDayRequests requests = new RoutePlanDayRequests();
Log.e("retailers",retailer.getId());
requests.setPartnerId(retailers.get(i).getId());
routePlanDayRequests.add(requests);
}
// call the service outside of the loop
updateServiceList(AppUtils.getMsisdn(mSharedPreferences), routePlanDayRequests);
}