2013-12-15 47 views
2

我有十個數字的輸入,名稱爲input_1,input_2,...,input_10。 在MainActivity我被這樣Java Android ArrayList與Id

EditText input_1 = (EditText) findViewById(R.id.input_1); 
EditText input_2 = (EditText) findViewById(R.id.input_2); 
... 
EditText input_10 = (EditText) findViewById(R.id.input_10); 

所以我想知道他們得到的ID有沒有什麼辦法,以充分利用或任何其他週期和陣列的ID。例如像這樣的東西

for(i=1;i<10;i++) { 
EditText input_i = (EditText) findViewById(R.id.input_i); 
} 

我試過這個,但它沒有工作。 對不起,我的英語和預先感謝您:)

+0

打印你在哪裏使用這個XML。 –

回答

0

您可以使用Context.getResources(),然後Resources.getResourceIdentifier()讓你的EditText的標識:

for(i=1;i<10;i++) { 
    int resourceIdentifier = this.getResources().getResourceIdentifier("input_".concat(String.valueOf(i)); 
    EditText input_i = (EditText) findViewById(resourceIdentifier, "id", this.getPackageName())); 
} 
0

創建的EditText的數組,然後訪問的EditText的這陣

Integer[] input_edit={R.id.input_1, R.id.input_2, R.id.input_3}; 


for (int i = 0; i < input_edit.length; i++) { 
EditText input = (EditText) findViewById(input_edit[i]); 
**Then put this EditText Value in any Array if you need to work out side of this loop**   
} 

感謝

0

這是這樣做的一個有效方式。 我用了2種方法,它們分別是:的getResource()則getIdentifier()

第一個用於訪問您applicacion例如資源:你可以用它來獲得一個參考使用getResource().getString(id)的字符串或使用getResource().getDrawable(id)的可繪製字符串。你可以在這裏獲得更多關於它的方法的信息:Resources Documentation

第二個是Resource類用於獲取ID的方法。

EditText input; 

for(int x = 0; x < 10; x++){ 

    //here you get the id 

int current_id = this.getResources().getIdentifier("input_".concat(String.valueOf(i)), "id" ,getPackageName()); 

//here you set the id 
input = (EditText) findViewById(current_id); 

} 

getIdentifier()需要3個參數,它們是:(String name, String defType, String defPackage)

你可以在這裏讀到他們:Resource documentation (GetIdentifier() Method)