2015-10-23 45 views
1

即時通訊做一個應用程序,看看是否檢查了一個checkedBox, 但我有21複選框,我需要獲取所有複選框的ID作出操作。有沒有辦法得到10個或更多的ID在Android Studio沒有手動?

有沒有辦法讓所有的id到一個數組而不需要手動執行? 我的意思是沒有做演員21次。〜 是這樣的。

CheckBox MineBox =(CheckBox)findViewById(R.id。「」); 我不想這樣做。 plis幫我

+0

看一看黃油刀:http://jakewharton.github.io/butterknife/ –

+0

可能的重複[Android:使用findViewById()與字符串/在一個循環中](http://stackoverflow.com/questions/4865244/android-using-findviewbyid-with-a-string-in-a-loop) –

回答

0

也許你可以把你的複選框包裝在一個RecyclerView?
Elsewise ..這裏是代碼,但它確實很難看,並且要注意xml中複選框的命名約定。 (這裏:機器人:ID = 「@ + ID/checkBox0」

CheckBox[] checkBoxList = new CheckBox[20]; 

for (int i = 0; i < 20, i++){ 
    String checkBoxID = "checkBox" + i; 
    int resID = getResources().getIdentifier(checkBoxID, "id", "com.your.projectname"); 
    checkBoxList[i] = findViewById(resID); 

} 
+0

沒有工作,我得到了最後一行的錯誤 –

+0

CheckBoxList [i] = findViewByid(resID);我在這裏得到了一個錯誤 –

+0

確保你在你的xml中正確地命名你的複選框 - 尤其是檢查s商場/大寫字母。 如果您在特殊視圖內調用此函數,則需要在其上調用findViewById。你是否正確更改了包名? – yennsarah

0

使用此:

for(int i=0; i<xvalue; i++) { 
    for(int j=0; j<yvalue; j++) { 
    String checkID = "chk" + i + "-" + j; 
    int id = getResources().getIdentifier(checkID, "id", "com.xx.xx"); 
    checks[i][j] = ((Button) findViewById(id)); 
    checks[i][j].setOnClickListener(this); 
    } 
} 
相關問題