我是 Android 3.1 及以上应用程序的开发人员。
我是一个动态表单生成器的开发人员,我需要以编程方式添加很多复选框。
表格将是第一列带有问题的表格,其他列将带有复选框。
这是一段代码,我在其中添加了复选框:
int optionsTotalNum = this.calculateColumsForBlock(block);
QuestionsGroup qGroup = block.getQuestionsGroup();
for(int z = 0; z < qGroup.getQuestions().size(); z++)
{
tableRow = new TableRow(this);
Question q = qGroup.getQuestions().get(new Integer(z));
params = new LayoutParams(this.optionWidth, this.rowHeight);
params.column = 0;
TextView optionName = new TextView(this);
optionName.setText(q.getQuestionText().toUpperCase());
optionName.setGravity(Gravity.CENTER);
optionName.setLayoutParams(params);
tableRow.addView(optionName);
for (int index = 1; i < optionsTotalNum; i++)
{
params.column = index;
CheckBox check = new CheckBox(this);
int id = ((z + 1) * 100) + index;
check.setId(id);
check.setLayoutParams(params);
tableRow.addView(check);
}
table.addView(tableRow, new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
this.rowHeight));
}
我使用int id = ((z + 1) * 100) + index;
动态创建 ID,但我不确定我是否会重复和 Id。换句话说,我不确定我是否会有两个具有相同 ID 的视图。我知道所有复选框都有不同的 ID,但我会有TextViews
, 和 aTableLayout
并且TableRows
我不知道它们是否可以有一个用于 a 的 ID CheckBox
。
findViewById()
如果有两个具有相同 ID 的视图会发生什么?
我们可以在同一个 ContentView 上有两个或多个具有相同 ID 的视图吗?
有没有更好的方法来唯一地识别所有复选框?