1. 说明
在开发过程中,有时候会有这种需求,就是第一次调用银行卡列表接口时,服务器给你返回一个bankList集合,然后需要自己遍历 bankList集合获取到每一个银行卡号,然后再去调用银行卡号对应的bankCode和bankName,因为如果你一次传递一个银行卡号,那么就只能返回该银行卡号对应的bankCode和bankName,这种方式不好,因为服务器可能会返回多张银行卡号,所以需要传递的参数就是把第一个接口返回的每一个银行卡号用 “,” 隔开,然后给服务器传递, 服务器会一次性返回每个银行卡号对应的bankCode和bankName,传递参数写法如下:
private String flag = "";
for (int i = 0; i < 2; i++) {
flag += i;
flag += "," ;
}
// 上边拼接的结果如下,如果返回1个卡号就是下边第一个;如果是两个卡号就是下边第二个卡号
// 6**************0,
// 6**************0, 6**************9,
// 这个是每次都截取 flag 的最后一个 "," 逗号字符
if (flag.endsWith(",")){
Log.e("TAG" , "flag: " + flag.substring(0,flag.length()-1)) ;
// 下边写:请求服务器接口,服务器返回 bankBeen 集合是给 listview填充数据
}
这样写就可以把 flag 作为参数传递给服务器。
2. 注意
服务器返回上边的数据,如果是给 listview或者recyclerview列表填充数据,刚进入界面时候 列表数据可能正常,如果点击某个按钮,进入 另一个Activity,然后 再点击返回键返回到这个页面,列表数据出现重复,那么原因就是这个 flag,这个时候需要做的就是:
在点击那个按钮的时候,让 flag=" ",就可以了。因为你在上边请求网络时 定义了flag,然后把flag拼接成用 "," 逗号隔开的字符串,但是没有将其置为空字符串,所以可能会导致 从另一个页面返回到这个列表页面时候,列表数据重复,你要做的就是点击哪个按钮返回到列表页面时数据重复,就在点击那个按钮地方把 flag=" " ,置为空字符串就可以解决数据重复问题了。