我有一个RelativeLayout,有四行三个按钮。我在XML文件中创建了ID,如下所示:
<resources>
<item type="id" name="row1" />
<item type="id" name="button1" />
<item type="id" name="button2" />
<item type="id" name="button3" />
<item type="id" name="row2" />
<item type="id" name="button4" />
<item type="id" name="button5" />
...
</resources>
我可以找到按下哪个按钮:
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
// do something
break;
case R.id.button2:
// do something else
break;
case R.id.button3:
// i'm lazy, do nothing
break;
}
}
但我无法弄清楚如何在循环中创建按钮时将ID分配给按钮。理想情况下,我想在循环中使用setId(R.id.myKnownId)
,但我不能。
有没有人知道如何才能做到这一点,除了在创建按钮后对其进行硬编码?
编辑:已添加代码。
for ( int j = 1 ; j < 5 ; j ++ ) {
int rowtemp = j;
currentRow.setTag("row"+rowtemp);
currentRow.setId(rowtemp); //<-- I want to add R.id.definedId here
for (int i = 1; i < 4; i++) {
Button btn = new Button(this);
int temp = buttonNumber;
btn.setId(temp); //<-- same thing here
btn.setTag("button"+buttonNumber);
btn.setText(buttonNumber + "");
btn.setOnClickListener(this);
}
buttonNumber++;
}
}