我正在開發Android 3.1及以上版本的應用程序。設置ID以唯一標識複選框
我正在開發一個動態表單生成器,我需要在編程上添加很多複選框。
表格將在其第一列有問題的表格,其他列將有複選框。
這是一段代碼,我添加複選框:
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;
動態地創建IDS,但我不知道我是否會重複和ID。換句話說,我不確定我是否會有兩個相同ID的視圖。我知道所有的複選框都會有不同的ID,但我會有TextViews
和TableLayout
和TableRows
,我不知道他們是否可以使用在CheckBox
上使用的ID。
如果存在兩個具有相同ID的視圖,findViewById()
會發生什麼?
我們可以在同一個ContentView上擁有兩個或多個具有相同ID的視圖嗎?
有沒有更好的方法來唯一標識所有複選框?
感謝您的回答。如果我用這些複選框創建一個集合,那麼我將只存儲對這些複選框的引用,不是嗎?我不會創造更多。對不起,但我的記憶管理知識是有限的。 – VansFannel 2012-04-26 08:25:19
@VansFannel ..是的,這是正確的... – ngesh 2012-04-26 09:42:13