Java 基于for循环的变量ImageView名称
这可能是一个以前被问过的简单问题,但我甚至不知道我将搜索什么来找到解决方案,所以我将在这里问它 我有4个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
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
谢谢。你解释得很好,所以我能理解。效果很好