2010-08-18 36 views
0

如果你有:Pass Control技術通過名字來findViewById

按鈕BTN =(按鈕)findViewById(R.id.widget28);

其中「widget28」是你的按鈕的名稱,你如何將這個 作爲字符串傳遞給findViewById?或從R類作爲一個字符串?

我想通過字符串獲取Button實例,而不是通過硬編碼R.id.widget28引用。

感謝

+0

爲什麼你需要使用一個字符串?這不是它的意思...... – WarrenFaith 2010-08-18 14:03:55

+0

我想通過字符串獲取Button實例,而不是通過硬編碼R.id.widget28引用。 – Lennie 2010-08-18 14:45:36

回答

1

注意findViewById期待一個int,而不是字符串,所以不知道你想在這裏實現什麼。

但是從其資源ID獲取字符串的一般方法是getString(R.string.theId)。請參閱Context API文檔。

即使出於某種原因,如果您確實需要變量的名稱,widget28,我也不相信即使有反射。您可以使用按鈕的android:tag元素將其存儲在XML文件中,然後使用yourButton.getTag()在代碼中檢索它,但我會考慮以不同的方式進行設計。