2014-12-21 45 views
0

我有許多複選框和它們的ID按照模式序列。 像複選框1,複選框2,複選框3等..通過使用變量ID檢索元素

我想運行一個循環保持每個框,檢索值,執行一些功能,並繼續前進。

喜歡的東西:

for(int i=0;i<9;i++) 
    { 
     String elementId="checkboxes"+Integer.toString(i); 
     CheckBox elementcb = (CheckBox) findViewById(R.id.elementId); 
    } 

當然了,上面的東西,但不會因爲我不能只是簡單的追加在R.id.前一個變量工作..所以我如何才能實現上述?請幫忙。

回答

1
for(int i=0;i<9;i++) 
{ 

    String elementId="checkboxes"+Integer.toString(i); 

    int resID = getResources().getIdentifier(elementId,"id", getPackageName()); 

    CheckBox elementcb = (CheckBox) findViewById(resID); 
} 

希望這有助於:)

+0

一點解釋爲什麼這個解決問題就好了。 – fejese

+0

那麼獲取標識符()會返回R中給定資源名稱的資源標識符。如果你打開R.java,你會看到內部類中所有定義的id都被稱爲id(id值是int)。 findViewByID()採用id爲R.id.checkboxes1的int值。 –