使用变量在Android Studio中使用setImageResource设置图像

时间:2016-10-18 11:01:55

标签: java android image android-studio imageview

我试图通过变量在我的ImageView中设置我的图像(item是变量名,我将设置为lowerCase)。 但是,它不起作用,并且resID将返回0.

这是我的代码:

    ImageView iv = (ImageView)v.findViewById(R.id.imgView);

    if (item != null) {
        Log.i("item: ", item.toLowerCase());

        int resID = getResources().getIdentifier(item.toLowerCase(), "drawable", "package.name");

        Log.i("resid: ", String.valueOf(resID)); //will return 0 - im guessing this is where the problem is

        iv.setImageResource(resID);
    }

我用它作为指南Android, reference things in R.drawable. using variables?,但其他解决方案都不适用于我,实际上它们都给了我相同的结果(返回0)。 如果需要,我可以提供更多代码(只是不希望它是夸张的)。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

getIdentifier()如果未找到此类资源,则返回0。 (0不是有效的资源ID。)

并且getPackageName()对象的context方法始终返回正确的包名称。

如果您要显示文件夹结构和文件名,我可以帮您修复它。

顺便说一句,如果您可以直接从资源中获取可绘制的内容,则可以使用R.drawable.resName