Попытка отправить ArrayList вместе с изображением и другими деталями
Получение элемента списка при выборе флажка
ArrayList<String> intrest = new ArrayList<>();
switch (buttonView.getId()) {
case R.id.business:
if (business.isChecked()) {
interest.add(String.valueOf(business.getText()));
}
break;
case R.id.politics:
if (politics.isChecked()) {
interest.add(String.valueOf(politics.getText()));
}
break;
case R.id.entertainment:
if (entertainment.isChecked()) {
interest.add(String.valueOf(entertainment.getText()));
}
break;
Ответ сервера
{"message":"Created successfully","data":{"interest":[],"showAds":true,"description":"ghbjbjj",
"title":"title","link":"link","image": "imageURL"}}
Класс интерфейса
@Multipart
@POST("/api/post")
Call<ResponseBody> createPost(
@Part("description") RequestBody description,
@Part("title") RequestBody title,
@Part("link") RequestBody link,
@PartMap Map<String, RequestBody> interest,
@PartMap Map data,
@Part MultipartBody.Part adsImage
);
@NonNull
private RequestBody createPartFromString(String descriptionString) {
return RequestBody.create(descriptionString,
okhttp3.MultipartBody.FORM);
}
Map<String, RequestBody> partMap = new HashMap<>();
for (int i = 1; i < interest.size(); i++) {
partMap.put("interest", createPartFromString(interest.get(i)));
}
Call<ResponseBody> call = RetrofitClient.getInstance()
.getApi()
.createPost(
createPartFromString(title),
createPartFromString(link),
partMap,
prepareFilePart("image", selectedImage)
);
Все остальные данные отправляются на сервер, кроме ArrayList.
Как передать ArrayList как часть?