Вы получаете это исключение, потому что вы увеличиваете / уменьшаете счетчик, получаете доступ к ArrayList, а затем делаете проверку.
Вам нужно увеличить / уменьшить счетчик, выполнить проверку и затем получить доступ к ArrayList.
ArrayLists имеют 0 расположений на основе, поэтому вам нужно убедиться, что наименьшее возможное расположение равно 0 и что максимальное возможное расположение на единицу меньше, чем количество элементов в ArrayList.
Что вам нужно сделать, это примерно так:
indexCounter++;
if (indexCounter > (filePaths.size - 1))
{
indexCounter = filePaths.size - 1;
}
callDetail();
и во второй части
indexCounter--;
if (indexCounter < 0)
{
indexCounter = 0;
}
callDetail();
Это заставит пользователя продолжать просматривать последнюю запись, если он / она продолжает нажимать следующую, и первую запись, если он / она продолжает нажимать предыдущую.
Во второй ноте вы, кажется, хотите реализовать Круговой список, поэтому это должно работать:
indexCounter++;
if (indexCounter > (filePaths.size - 1))
{
indexCounter = 0;
}
callDetail();
и во второй части
indexCounter--;
if (indexCounter < 0)
{
indexCounter = filePaths.size - 1;
}
callDetail();