2010-08-18 34 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()在代码中检索它,但我会考虑以不同的方式进行设计。