Java 在Android Studio中使用变量setImageResource设置图像
我试图通过一个变量在ImageView中设置图像(项是变量名,我将设置为小写)。 但是,它不起作用,resID将返回0 这是我的密码:Java 在Android Studio中使用变量setImageResource设置图像,java,android,image,android-studio,imageview,Java,Android,Image,Android Studio,Imageview,我试图通过一个变量在ImageView中设置图像(项是变量名,我将设置为小写)。 但是,它不起作用,resID将返回0 这是我的密码: ImageView iv = (ImageView)v.findViewById(R.id.imgView); if (item != null) { Log.i("item: ", item.toLowerCase()); int resID = getResources().getIdentifier(it
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);
}
我将此作为指导,但其他解决方案都不适用于我,事实上它们都给了我相同的结果(返回0)。
如果需要的话,我可以提供更多的代码(只是不想太夸张)。
提前谢谢 getIdentifier()如果未找到此类资源,则返回0。(0不是有效的资源ID。)
您应该使用context
对象的getPackageName()
方法,该方法始终返回正确的包名
如果您将显示您的文件夹结构和文件名,我可以帮助您修复它
顺便说一句,如果您可以直接从资源中获取drawable,那么只需使用
R.drawable.resName
“package.name”
是错误的。使用getPackageName()
。一example@Blackbelt的确啊。。非常感谢。它起作用了,我对自己没有弄明白这一点感到非常生气。非常感谢你!是的,我知道资源,但不幸的是,它不是此应用程序的选项:)