如何在params中传递整个id列表?

时间:2018-01-25 08:27:08

标签: java android list android-arrayadapter

我在此列表零售商对象中收到回复。

     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。 有人知道为什么会这样吗?

1 个答案:

答案 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);
}