一般匹配带有 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]);
}
我在 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]);
}