2016-05-12 2 views
2

Я создал флажки программно, и мне нужно установить layout_above для каждого из них (чтобы они были выше друг друга). Этот код работает в цикле, поэтому он будет генерировать несколько флажков, но мне нужно установить id. как я могу его правильно сгенерировать?Создать идентификатор в android

CheckBox checkBox = new CheckBox(getApplicationContext()); 
    RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams 
     (RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
     layoutParams.addRule(RelativeLayout.ABOVE, checkBox.getId()); 
     checkBox.setLayoutParams(layoutParams); 
     checkBox.setWidth(getScreenWidth()); 
     checkBox.setText(questions.get(questionId).answers.get(index)); 
    ll.addView(checkBox); 
+0

checkBox.setId (int); для установки идентификатора на каждом флажке –

+1

Возможный дубликат [Как я могу назначить идентификатор для просмотра программно?] (http://stackoverflow.com/questions/8460680/how-can-i-assign-an-id-to- a-view-программно) –

+0

Не уверен. Я генерирую его во время цикла, и он генерирует как 4-7 флажки. –

ответ

0
checkBox.setId(checkBoxId); 

генерирует случайное число и увеличивать его внутри цикла. Возможно, это должно произойти.

1
int CHECK_BOX_ID = 1; 
CheckBox checkBox = new CheckBox(getApplicationContext()); 
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams 
    (RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    layoutParams.addRule(RelativeLayout.ABOVE, checkBox.getId()); 
    checkBox.setLayoutParams(layoutParams); 
    checkBox.setWidth(getScreenWidth()); 
    checkBox.setId(CHECK_BOX_ID); 
    CHECK_BOX_ID++; 
    checkBox.setText(questions.get(questionId).answers.get(index)); 
ll.addView(checkBox); 
Смежные вопросы