Как сделать массив из объектов, заполненных из двух ArrayList-ов? Для заполнения ListView
У меня есть два ArrayList-a: swedishPractice и englishPractice. В одном - шведские слова, во втором - их переводы на английский. Они изначально в нужном порядке, и английский перевод правильно соответствует шведском слову.
Мне нужно сделать массив, в котором шведское и английское слово "связаны" в один объект, для того чтобы создать ListView, в котором будут все эти слова и к каждому подписан перевод.
Я создал класс Word:
public class Word {
private String swedish;
private String english;
public Word(String swedish, String english) {
this.swedish = swedish;
this.english = english;
}
public String getSwedish() {
return swedish;
}
public void setSwedish(String swedish) {
this.swedish = swedish;
}
public String getEnglish() {
return english;
}
public void setEnglish(String english) {
this.english = english;
}
}
Также создал mListView в новом классе:
ListView mListView = (ListView) findViewById(R.id.switchList);
CheckListAdapter adapter = new CheckListAdapter(this, R.layout.list_item_layout, /*здесь должно быть название массива, который пытаюсь сделать*/);
mListView.setAdapter(adapter);
(В list_item_layout предусмотрены 2 textView для шведского и английского слов)
Не могу понять как теперь сделать массив из этих Word-ов (класс Word), содержащих и шведское слово, и перевод, из двух упомянутых в начала ArrayList-ов?
Ответы (1 шт):
Если у вас изначально все слова в исходных массивах в правильном порядке, то можно просто пройтись по одному массиву и синхронно по второму. Например так:
ArrayList<Word> finalArray = new ArrayList<Word>();
for (int i = 0; i < englishPractice.size(); i++) {
finalArray.add(new Word(englishPractice.get(i),swedishPractice.get(i)));
}
по итогу у вас будет массив состоящий из объектов класс Word. Дальше вам нужно это как-то отобразить. Судя по тому что у вас есть адаптер, то в его конструктор нужно будет передавать массив слов: ArrayList<Word> words