2015-10-23 29 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); 
    } 
} 
相关问题