私はAndroid3.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));
}
私はIDを動的に作成するために使用int id = ((z + 1) * 100) + index;
しますが、IDを繰り返すかどうかはわかりません。つまり、同じIDを持つ2つのビューがあるかどうかはわかりません。すべてのチェックボックスのIDが異なることはわかっていますが、、、TextViews
および、TableLayout
およびTableRows
を使用し、で使用されるIDを使用できるかどうかはわかりませんCheckBox
。
findViewById()
同じIDのビューが2つある場合はどうなりますか?
同じContentViewに同じIDを持つ2つ以上のビューを含めることはできますか?
すべてのチェックボックスを一意に識別するためのより良い方法はありますか?