2017-01-17 54 views
2

我要動態地創建4個按鈕,我要動態地生成自己的ID,是這樣的:動態設置視圖的ID

for(int i = 1; i <= 4; i++){ 
    Button button = new Button(activity); 

    // i need something here to turn this string into an int;  
    button.setId("button" + i) 
    } 

我知道如何動態地獲取現有視圖的id:

getResources().getIdentifier("button2", "button", getPackageName()) 

我不知道的是如何動態生成id。

我在網上看了一下,但沒有找到任何東西。

我需要這樣的東西:

int id = getResources().setIdentifier("button2", "button", getPackageName()); 
button.setid(id); 

預先感謝您。

+0

'setId(int)'傳遞整數值作爲參數 –

+1

爲什麼要調用'setId()'?你有這些'Button'的引用,那麼你需要這些ID用於什麼? – pskink

+2

只需使用'.setTag(字符串值)'玩。它更有用 –

回答

3

使用,則可以只使用View.setId(int)這一點。根據文檔id不需要在樹狀圖中是唯一的,您可以使用任何(正數)整數代替Views

醫生說

標識符不必在此視圖的層次結構獨特。標識符應該是一個正數。

,如果你想連接與View你可以標記對象的某些其他信息,查看使用setTag(),並通過findViewWithTag("obj");

期待看到更多關於這裏創建一個ID https://stackoverflow.com/a/13241629/5235032

1

1,價值觀文件夾中創建XML,

2,<resources> <item type="id" name="button1">123</item> </resources>

3,在Java代碼中button.setId(R.id.button1);

2

一個更好的做法是使用在API 17中引入的button.setId(View.generateViewId())