Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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 基于for循环的变量ImageView名称_Java_For Loop - Fatal编程技术网

Java 基于for循环的变量ImageView名称

Java 基于for循环的变量ImageView名称,java,for-loop,Java,For Loop,这可能是一个以前被问过的简单问题,但我甚至不知道我将搜索什么来找到解决方案,所以我将在这里问它 我有4个ImageView,它们都有相同的名字,只是名字后面的数字越来越多。例如: final ImageView circle1 = findViewById(R.id.p1circle1); final ImageView circle2 = findViewById(R.id.p1circle2); final ImageView circle3 = findViewBy

这可能是一个以前被问过的简单问题,但我甚至不知道我将搜索什么来找到解决方案,所以我将在这里问它

我有4个ImageView,它们都有相同的名字,只是名字后面的数字越来越多。例如:

    final ImageView circle1 = findViewById(R.id.p1circle1);
    final ImageView circle2 = findViewById(R.id.p1circle2);
    final ImageView circle3 = findViewById(R.id.p2circle1);
    final ImageView circle4 = findViewById(R.id.p2circle2);
我想根据for循环中的一个变量循环这些。这是我创建的for循环

for(int i = 0; i < wins1; i++) {
    circle +i .setBackground(getResources().getDrawable(R.drawable.circle2);
}
for(int i=0;i
我试图通过在名称末尾添加递增的
I
变量来循环使用不同的ImageView名称,但这显然是不正确的方法

如何根据变量
I
,循环使用这些变量名?

Java的说法是正确的,即不能只向变量名添加一个数字,而期望它引用另一个变量

这个问题的解决方案是将ImageView添加到一个iterable数据结构中,最常见的是一个。从该结构中,您可以使用get方法引用数组列表的索引,而不是直接按名称调用变量。(如果不需要以其他方式引用对象,甚至可能不需要将对象保存到变量中)

比如:

ArrayList<ImageView> circleList = new ArrayList<>();

//Add 4 new ImageViews to the list
for (int i = 0; i < 4; i++) {
    circleList.add(new ImageView());
}

for(int j = 0; j < wins1; j++) {
    circleList.get(j).setBackground(getResources().getDrawable(R.drawable.circle2);
}
ArrayList circleList=新建ArrayList();
//向列表中添加4个新的ImageView
对于(int i=0;i<4;i++){
添加(新的ImageView());
}
对于(int j=0;j
谢谢。你解释得很好,所以我能理解。效果很好