2014-09-01 3 views
1

У меня в моей базе данных есть столбец, в котором хранится имя файла, который я использую в приложении для Android. В большинстве своих действий мне нужно использовать много этих изображений.Включите ArrayList имен файлов в Android-ресурсы

Таким образом, я храню эти имена файлов в ArrayList<String>, и я хочу, чтобы мой вывод был ArrayList<Integer> идентификаторов ресурсов этих изображений.

На основе нескольких вопросов здесь на StackOverflow, я использовал следующую технику (got it from this question):

// Where tileImageFilenames is the ArrayList<String> 

    for(int i=0;i<tileImagesFilename.size();i++) 
    { 

     tileImagesIDS.add(getResources().getIdentifier(tileImagesFilename.get(i) , "drawable", getApplication().getPackageName())); 
    } 

Это возвращает мне ArrayList<Integer> полный 0s.

ответ

2

вы должны создать новый объект, а затем добавить его в ArrayList<Integer>

for(int i=0;i<tileImagesFilename.size();i++) 
    { 
     String name = tileImagesFilename.get(i).replace(".jpg",""); 
     tileImagesIDS.add(new Integer(getResources().getIdentifier(name , "drawable", getApplication().getPackageName()))); 
    } 
+1

из того, что я понимаю, дженерики в java не применимы к разрешительным устройствам, поэтому ArrayList определенно терпит неудачу. – Raf

+1

yup, это не сработало – tvieira

+0

Какая ошибка? – mmlooloo

0

Попробуйте использовать следующий код, если он сработает для вас, тогда вы можете поместить его в цикл for.

String mDrawableName = "myappicon"; 
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName()); 
+0

Благодарим за голосование вниз, если будет достаточно любезен, чтобы объяснить, что помогло бы мне понять, где я пошло не так. – Raf

+0

Это в значительной степени то, что я использую прямо сейчас – tvieira

+0

Ну, вы не указали на свой вопрос, что такое контент вашего ArrayList, который хранит ваши имена файлов. Возможно, у него есть файлы с расширением. Это должно быть только имя файла, без расширения. Я хотел сказать, что ваш вопрос не является полным и что вам нужно предоставить больше информации, но, похоже, вы очень быстро нажимаете на подавляющее большинство голосов. – Raf

Смежные вопросы