我想在 Android Studio 中包含 xml 文件中的几个 ImageView

I want to include several ImageViews from xml file in Android Studio

我想将 Android Studio 中 xml 文件中的几个 ImageView 包含到我的 java class 中,以便稍后在运行时修改它们。 我知道它是如何工作的,但我确信它不是最好的。

List<ImageView> pictures= new ArrayList<>();
    pictures.add((ImageView) findViewById(R.id.picture0));
    pictures.add((ImageView) findViewById(R.id.picture1));
    ...

一定有更高效的方法吧?我将 xml 中的 ImageViews 的 ID 命名为 pictureX,其中 X 是图片的编号。因此 - 我想 - 我可以以某种方式迭代这些 ID,例如

    for (int i=0; i<24; i++){
        String s = "R.id.picture" + i;
        pictures.add((ImageView) findViewById(s));
    }

但它当然不起作用,因为不可转换的类型。 findViewById的参数必须是int...

有没有办法让这些 ImageView 进入循环,还是我真的必须让每个 ImageView 都独立?

我很感激每一个答案。 :)

您可以使用 ViewGroup.getChildAt()

for(int i = 0; i < container.getChildCount(); i++){
    pictures.add((ImageView)container.getChildAt(i));
}

您还可以为复杂的子视图添加转换检查器,这样它就不会抛出 ClassCastException

for(int i = 0; i < container.getChildCount(); i++){
   if(container.getChildAt(i) instanceof ImageView)
      pictures.add((ImageView)container.getChildAt(i));
}