This question already has answers here:
How do I get the resource id of an image if I know its name?
                                
                                    (5个答案)
                                
                        
                                5年前关闭。
            
                    
我的数据库中有一列,用于存储我在android应用程序中使用的图像的文件名。在我的大多数活动中,我需要使用很多这些图像。

因此,我将这些文件名存储在ArrayList<String>中,并且我希望我的输出成为这些图像的资源ID的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()));
    }


这将返回一个全为0的ArrayList<Integer>

最佳答案

您必须创建新对象,然后将其添加到您的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())));
    }

08-06 01:42