Как в ListView повторно выводить массив из 3х элементов 5 раз?
Читаю книгу по Android. По этому приложению, создал ListFragment которая выводит массив состоящий из 3 объектов. В принципе приложение нормально работает. В списке выводятся названия трех машин. Теперь я хочу чтобы эти машины повторно выводились еще 5 раз к примеру. Организую второй цикл for, и в нее вкладываю первый цикл for, который выводит модели трех машин, но не помогает.
Вот часть кода который выводит модели трех машин:
String[] namesCar = new String[Data.cars.length];
for (int i = 0; i < namesCar.length; i++) {
namesCar[i] = Data.cars[i].getNameCar();
}
Вот рабочий скриншот:
Вот моя часть кода, которая должна повторять вывод этих машин 5 раз, но код не работает:
String[] namesCar = new String[Data.cars.length];
for (int k = 0; k < 5; k++) {
for (int i = 0; i < namesCar.length; i++) {
namesCar[i] = Data.cars[i].getNameCar();
}
}
Ответы (1 шт):
Проверьте свой код: в нём нигде не используется k, а i принимает значения от 0 до Data.cars.length-1. Весьма логично, что массив до сих пор содержит только 3 значения (а ведь больше он и не вместит, его длина по-прежнему равна Data.cars.length).
- Увеличьте размер заполняемого массива (число 5 соответствует желаемому количеству повторяющихся элементов):
String[] namesCar = new String[Data.cars.length*5];
- Используйте переменную
k(теперь будут заполняться элементы массива с индексами от 0 приi=0иk=0до 14 приk=4иi=2):
for (int k = 0; k < 5; k++) {
for (int i = 0; i < Data.cars.length; i++) {
namesCar[k*Data.cars.length+i] = Data.cars[i].getNameCar();
}
}
Пример работы на js:
//Ваш класс автомобиля
class Car {
constructor(name) {
this.name = name;
}
getNameCar() {
return this.name;
}
}
//Ваш класс данных
let Data = {
//Массив экземпляров класса автомобилей
cars: [new Car("Koyota"), new Car("Folks"), new Car("Nazda")]
}
//Выходной массив
let namesCar = [];
//Преобразования
for (let k = 0; k < 5; k++) {
for (let i = 0; i < Data.cars.length; i++) {
namesCar[k*Data.cars.length+i] = Data.cars[i].getNameCar();
}
}
//Вывод массива
console.log(namesCar);
