我正在尝试制作一个迭代一组按钮的方法,然后计算它们是否符合正确的条件。
这样做我想知道是否可以使用正则表达式基于计数器的值增加R.id.gridButton
方法的方法的值,或者如果不可能,那么反射将是正确的方法关于它。
实施例:
i == 1
R.id.gridButton1
i == 2
R.id.gridButton2
public int getBoardSize() {
int buttonCount = 0;
TableLayout tableLayout = (TableLayout) findViewById(R.id.tableLayout);
System.out.println("Table child count: " + tableLayout.getChildCount());
for (int rowIndex = 0; rowIndex < tableLayout.getChildCount(); rowIndex++) {
View tableLayoutChild = tableLayout.getChildAt(rowIndex);
if (tableLayoutChild instanceof TableRow) {
for (int i = 0; i < ((ViewGroup) tableLayoutChild).getChildCount(); i++) {
System.out.println("Value of i: " + i);
View view = ((ViewGroup) tableLayoutChild).getChildAt(i);
if (view instanceof Button && view.getId() == R.id.gridButton1 ) {
buttonCount++;
}
}
}
}
System.out.println("Child count: " + buttonCount);
return buttonCount;
}
答案 0 :(得分:0)
你的意思是
switch(view.getId())
{
case R.id.gridButton1:
//do whatever you need to
break;
case R.id.gridButton2:
//...
break;
default:
break;
}
这似乎是你所追求的最简单,最优雅的方法。