Я подаю в суд на мультиселектор, чтобы обновить языки на сервере с помощью модернизации. но когда я выбираю несколько опций из spinner, он возвращает логический массив, а выбранное значение возвращается как true, а остальные как false. Теперь мне нужно получить значение для каждого заголовка с помощью индекса, сохранить их в массив и отправить этот массив на сервер для обновления моей записи. вот изображение, которое это объясняет.
На этом изображении показан логический массив, который возвращает значение true для каждого выбранного значения, а другой массив - мои данные. Мне нужно показать пользователю заголовок, а на внутреннем уровне - отправить значение для каждого заголовка.
это код, который я не могу получить массив значений для каждого выбранного заголовка. пожалуйста помогите
Call<List<EnglishLevel>> call_english = RetrofitClient.getInstance().getApi().getenglishlist("english_levels");
call_english.enqueue(new Callback<List<EnglishLevel>>() {
@Override
public void onResponse(Call<List<EnglishLevel>> call, Response<List<EnglishLevel>> response) {
arrayList_english =response.body();
for (EnglishLevel C:arrayList_english){
if (C.getTitle() != null){
Log.d("English level" , C.getTitle());
final String[] levelName = new String[arrayList_english.size()];
for (int i=0 ; i<arrayList_english.size() ; i++){
levelName[i]= arrayList_english.get(i).getTitle();
}
ArrayAdapter<String> adapter= new ArrayAdapter <String>(SearchActivity.this,
android.R.layout.simple_list_item_multiple_choice,
levelName);
english.setListAdapter(adapter).setListener(new MultiSelectSpinner.MultiSpinnerListener() {
@Override
public void onItemsSelected(boolean[] selected) {
ArrayList<String> toSend = new ArrayList<>();
for(int j = 0; j < arrayList_english.size(); j++){
if(selected[j]) {
toSend.add(arrayList_english.get(j).getValue());
}
}
//
}
})
.setSelectAll(false).setMinSelectedItems(0);
}
}
}
@Override
public void onFailure(Call<List<EnglishLevel>> call, Throwable t) {
Toast.makeText(SearchActivity.this , t.getMessage() , Toast.LENGTH_SHORT).show();
}
});
В приведенном выше коде у меня есть проблема с какой-то его частью ...
english.setListAdapter(adapter).setListener(new MultiSelectSpinner.MultiSpinnerListener() {
@Override
public void onItemsSelected(boolean[] selected) {
ArrayList<String> toSend = new ArrayList<>();
for(int j = 0; j < arrayList_english.size(); j++){
if(selected[j]) {
toSend.add(arrayList_english.get(j).getValue());
}
}
//
}
в onItemSelected
мне нужно получить массив значений каждого выбранного заголовка.