Android 如何获取按钮的原始资源标识符?

Android 如何获取按钮的原始资源标识符?,android,button,Android,Button,在我的布局xml文件中,我有几个类似的按钮,它们共享相同的事件处理程序: <Button android:id="@+id/page1" onClick="OnClick" .... ></Button> 动态构建url。但是,getId()返回表示按钮ID的整数,而不是单词“page1” 当然,我可以使用switch语句,但是如果我可以引用分配给按钮的原始ID名称,那就方便多了 这可能吗?您可以在生成的R.id类上使用反射。 或者,您可以更好地使用包含您想要知道的值的

在我的布局xml文件中,我有几个类似的按钮,它们共享相同的事件处理程序:

<Button android:id="@+id/page1" onClick="OnClick" .... ></Button>
动态构建url。但是,getId()返回表示按钮ID的整数,而不是单词“page1”

当然,我可以使用switch语句,但是如果我可以引用分配给按钮的原始ID名称,那就方便多了


这可能吗?

您可以在生成的R.id类上使用反射。
或者,您可以更好地使用包含您想要知道的值的字段创建自己的类。

您可以对生成的R.id类使用反射。
或者,您可以更好地使用包含您想要知道的值的字段创建自己的类。

使用
getResources().getResourceName()
使用
getResources().getResourceName()
反射,或者设置android:tag属性,然后使用.getTag(),这比代码更简单,但在.xml中有点冗余。

反射或,设置android:tag属性,然后使用.getTag(),代码更简单,但在.xml中有点冗余。

感谢您的提醒。我是Java新手,不知道这个概念。谢谢你提到我的想法。我是Java新手,不知道这个概念。很好!实际上,getResourceName()返回完整的标识符;getResourceEntryName()只提供按钮名称。谢谢:)很好!实际上,getResourceName()返回完整的标识符;getResourceEntryName()只提供按钮名称。谢谢:)
public void onClick(View v) {
  String url = String.format("http://example.com/%d", v.getId());
}