我试图通过变量在我的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)。 如果需要,我可以提供更多代码(只是不希望它是夸张的)。 提前谢谢!
答案 0 :(得分:1)
getIdentifier()如果未找到此类资源,则返回0。 (0不是有效的资源ID。)
并且getPackageName()
对象的context
方法始终返回正确的包名称。
如果您要显示文件夹结构和文件名,我可以帮您修复它。
顺便说一句,如果您可以直接从资源中获取可绘制的内容,则可以使用R.drawable.resName