如何在齐射库中传递参数中的数组

时间:2017-08-15 14:57:37

标签: java android android-volley

拥有收集信息的服务器模板

['param_id' => 12, 'count' => 4, 'car' => ['mazda 3 bk', '1.6', '2010']]

列表

 list.add(ed_car.getText().toString());
                            list.add(ed_motor.getText().toString());
                            list.add(ed_year.getText().toString());

凌空传球

@Override
                    protected Map<String, String> getParams() throws AuthFailureError {
                        Map<String, String> parameters = new HashMap<String, String>();
                        parameters.put("param_id", id_item);
                        parameters.put("count", spinner_count.getSelectedItem().toString());

                        for(int i=0; i < list.size(); i++)
                        {
                            parameters.put("car",list.get(i));///////???
                        }
                        return parameters;
                    }

如何根据接收模板中的位置正确传递列表

2 个答案:

答案 0 :(得分:2)

使用此:

for (int i = 0; i < list.size(); i++)
{
    parameters.put("car["+i+"]", list.get(i));
}

答案 1 :(得分:1)

parameters.put("car",list.get(i));会用新的

覆盖以前的值

解决方案:

   ['mazda 3 bk', '1.6', '2010']
// ^                           ^ json array

所以创建json数组并使用它的字符串表示

Map<String, String> parameters = new HashMap<String, String>();
parameters.put("param_id", id_item);
parameters.put("count", spinner_count.getSelectedItem().toString());

JSONArray car = new JSONArray();
for(int i=0; i < list.size(); i++)
{
    car.put(list.get(i));
    // create array and add items into that 
}
parameters.put("car",car.toString());
return parameters;

请查看将返回所需格式的toString()