2016-05-12 88 views
2

我以編程方式創建了複選框,並且我需要爲它們中的每一個設置layout_above(以便它們將在彼此之上)。 這段代碼工作在循環中,所以它會產生很少的複選框,但我需要設置id。我該如何正確生成它?在android中生成ID

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);在每個複選框上設置ID –

+1

可能的重複[如何以編程方式將ID分配給視圖?](http://stackoverflow.com/questions/8460680/how-can-i-assign-an-id-to- a-view-programmatically) –

+0

不確定。我在while循環中生成它,它會生成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);