@slavenski
Android developer

Как заполнить ArrayList путями к файлам assets?

Пишу приложение "викторина по флагам стран", имеется набор флагов в папке assets. Есть метод, который перезапускает фрагмент, когда изменены настройки. Механизм, как я понял, что мы выхватываем путь картинки, и добавляем его в список ArrayList, и т.д. Штука в том, что почему-то выдает ошибку на этапе компиляции, сам метод:
Код
public void resetQuiz() {
            AssetManager assets = getActivity().getAssets();
            fileNameList.clear();

            // Использование AssetManager для получения имен файлов изображений
            try {
                for(String region:regionSet){
                    String[] paths = assets.list(region);
                    for(String path:regionSet){
                        fileNameList.add(path.replace(".png", ""));
                    }
                }
            }
            catch(IOException ex) {
               Log.e(TAG, "Error loading image file names", ex);
            }



            correctAnswers = 0;
            totalGuesses = 0;

            quizCountriesList.clear();

                int flagCounter = 1;
                int numberOfFlags = fileNameList.size();

                // Добавление FLAGS_IN_QUIZ случайных файлов в quizCountriesList
                while (flagCounter <= FLAGS_IN_QUIZ) {
                    int randomIndex = random.nextInt(numberOfFlags);

                    // Получение случайного имени файла
                    String filename = fileNameList.get(randomIndex);

                    //Если регион включен, но еще не был выбран
                    if (!quizCountriesList.contains(filename)) {
                        quizCountriesList.add(filename);

                    }
                    ++flagCounter;
                }

            loadNextFlag(); //Запустить викторину с загрузкой первого флага
        }


Также выкладываю ссылку на Git
ссылка

P.S. Не жду, конечно, что кто-то будет копаться в моих костылях, но все же, может, здесь есть добрые люди =)
P.S.S Не исключаю, что я что-то не так понял, учусь программированию на Android по книге, там много методов, которые сейчас устарели, и пытаюсь сам писать, но с этой проблемой уже борюсь дня 2-3 =(
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Как минимум ошибка
for(String region:regionSet){
                    String[] paths = assets.list(region);
                    for(String path:regionSet){ <--------
                        fileNameList.add(path.replace(".png", ""));
                    }
                }


Какая ошибка-то выдаётся?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@red-barbarian
компилится нормально.
проблемы на этапе inflate R.layout.fragment_main (возможно только у меня)
и в loadNextFlag();
в assets лежат файлы (каталоги) без "-". естественно nextImage.indexOf('-') дает -1
и это плохо переваривается.
все написано в logcat
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы