Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:使用循环将图像ID';s_Java_Android_Loops - Fatal编程技术网

Java Android:使用循环将图像ID';s

Java Android:使用循环将图像ID';s,java,android,loops,Java,Android,Loops,类似的问题,但我想我在寻找一个不同的答案 如链接帖子中所述,这: int p = R.drawable.photo; image.setImageResource(p); 显示photo1,但类似以下内容: String a = "R.drawable."; String b = "photo"; String c = a+b; int p = Integer.parseInt(c); image.setImageResource(p); 不会。我有很多图像,一个包含所有图像名称的数组,所以

类似的问题,但我想我在寻找一个不同的答案

如链接帖子中所述,这:

int p = R.drawable.photo;
image.setImageResource(p);
显示photo1,但类似以下内容:

String a = "R.drawable.";
String b = "photo";
String c = a+b;
int p = Integer.parseInt(c);
image.setImageResource(p);
不会。我有很多图像,一个包含所有图像名称的数组,所以我想填充一个数组,如下所示:

int imageArray[] = new int[number_of_images];
for (int i = 0; i < numImages; i++)
imageArray[i] = ("R.drawable." + image_names[i]);
int-imageArray[]=新的int[图像的数量];
对于(int i=0;i
但我得到一个运行时错误。有什么方法可以让这个循环工作吗?或者更好的方法将图像ID提示到数组中


谢谢

您可以使用此方法,它将根据字符串重新运行源id。第二个和第三个参数是可选的,但是如果你能把它们放进去,我会的

public int getIdentifier (String name, String defType, String defPackage) 
例如:

int p = getIdentifier("photo","drawable")
或者,如果您一直在获取ID,您可以创建一个函数,如:

public int getDrawableId(Context context, String name){
    return context.getResources().getIdentifier(name,"drawable", context.getPackageName());
}
您只需检查它是否返回0,因为这意味着它没有找到它

编辑

对于上面的示例,只需实现上面的函数并将其更改为:

int imageArray[] = new int[number_of_images];
for (int i = 0; i < numImages; i++)
imageArray[i] = getDrawableId(getApplicationContext(),"R.drawable." + image_names[i]);
int-imageArray[]=新的int[图像的数量];
对于(int i=0;i
您可以使用此方法,它将根据字符串重新运行源id。第二个和第三个参数是可选的,但是如果你能把它们放进去,我会的

public int getIdentifier (String name, String defType, String defPackage) 
例如:

int p = getIdentifier("photo","drawable")
或者,如果您一直在获取ID,您可以创建一个函数,如:

public int getDrawableId(Context context, String name){
    return context.getResources().getIdentifier(name,"drawable", context.getPackageName());
}
您只需检查它是否返回0,因为这意味着它没有找到它

编辑

对于上面的示例,只需实现上面的函数并将其更改为:

int imageArray[] = new int[number_of_images];
for (int i = 0; i < numImages; i++)
imageArray[i] = getDrawableId(getApplicationContext(),"R.drawable." + image_names[i]);
int-imageArray[]=新的int[图像的数量];
对于(int i=0;i
首先尝试打印p。它是否与R.drawable.photo_id相同?您的问题是否与此类似:?能否发布错误?请先尝试打印p。它是否与R.drawable.photo_id相同?您的问题是否与此类似:?是否可以发布错误?