Отправить arraylist с определенным форматом в параметрах запроса залпа - PullRequest
0 голосов
/ 18 октября 2018

Я посылаю ключ и значения в параметрах запроса залпа.Я могу отправить все данные успешно, однако я хочу отправить один из ArrayList в этом формате

  params.put("facilities", "facilities=1&facilities=3&facilities=7");

Я поставил 1, 3 и 7 в качестве примера. Это будет включать выбранные элементыи находятся в моих средствах ArrayList.У меня есть 8 элементов на экране, и если я выберу 4, то ArrayList будет содержать 4 элемента, но как отправить в этом точном формате параметров?Я также пытался использовать приведенный ниже код, но он тоже не работал

 for (int i=0; i<facilitiesList.size(); i++){
                params.put("facilities", facilitiesList.get(i).toString());
            }

Я хочу отправить все выбранные данные в том формате, который я показал сверху.Кто-нибудь знает, как решить эту проблему?

РЕДАКТИРОВАТЬ - я выбираю элементы, используя код ниже

private List<Integer> facilitiesList; ///initialization


 private BaseRecyclerAdapter<FacilitiesApi.ApiResponse.Datum, FacilitiesViewHolder> mBaseRecyclerAdapter = new BaseRecyclerAdapter<FacilitiesApi.ApiResponse.Datum, FacilitiesViewHolder>(FacilitiesViewHolder.class, R.layout.layout_list_item_facilities) {
    @Override
    protected void populateViewHolder(final FacilitiesViewHolder viewHolder, final FacilitiesApi.ApiResponse.Datum model, final int position) {
        viewHolder.mCustomCheckBoxFacilities.setText(model.getName());
        if (facilitiesList != null) {
            if (facilitiesList.contains(model.getId())) {
                viewHolder.mCustomCheckBoxFacilities.setChecked(true);
            } else {
                viewHolder.mCustomCheckBoxFacilities.setChecked(false);
            }
        }
        viewHolder.mCustomCheckBoxFacilities.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    facilitiesList.add(Integer.valueOf(model.getId()));
                } else {
                    facilitiesList.remove(Integer.valueOf(model.getId()));
                }
            }
        });
    }
};

1 Ответ

0 голосов
/ 18 октября 2018

Сначала необходимо создать строку запроса с помощью цикла for, а затем отправить его в своем запросе.Вы должны сделать что-то вроде этого.

    String facilities="";
    for (int i=0; i<facilitiesList.size(); i++){
          if(i==0){
          facilities=facilities+"facilities="+facilities.get(i);
          }else{
          facilities=facilities+"&facilities="+facilities.get(i);
          }
        }

Проверка i==0 необходима для прекращения добавления символа & на первой позиции. Попробуйте это должно работать

...