一般匹配带有 id 的按钮

generically match a button with id

我在 xml 布局中创建了按钮,每个按钮都有一个 id:button1、button2 等等。 我想在我的主要 activity 中创建一个按钮数组并为所有按钮循环并将它们引用到 ids。

ImageButton btn = (ImageButton)this.findViewById (R.id.imageButton1);
ImageButton btn2 = (ImageButton)this.findViewById (R.id.imageButton2);

我不想这样做,而是想要这样的东西:

ImageButton btn[];
for(int i=0;i<numOfButtons;i++)
{
    btn[i] = (ImageButton)this.findViewById (R.id.("imageButton"+(i+1)));
}

你不能这样笼统地使用 id。

但如果布局如下所示,您可以循环使用按钮:

<layout>
  <button>
  <button>
  <button>
  ...
  <button>
</layout>

那么,

for (int i = 0; i < layout.getChildCount; i++)
     button[i] = layout.getChild(i);
ImageButton btn[];      
int[] btnIDs = new int[] {R.id.btn1, R.id.btn2, R.id.btn3,R.id.btn4, ... }
        for(int i=0; i<btnIDs.length; i++) {
            btn[i] = (ImageButton) findViewById(btnIDs[i]);
    }