11

View 的 getId() 方法和 XML 文件中定义的 id 之间有什么关联?有没有?我的 ID 如下所示:“field1”、“field2”……最后的这些数字对我的应用程序非常重要,我需要检索它们。有什么办法吗?

4

4 回答 4

19

要获取资源 ID 名称:

res.getResourceEntryName(view.getId())

你会得到“field1”

于 2014-01-10T11:25:17.397 回答
17

View 的 getId() 方法和 XML 文件中定义的 id 之间有什么关联?

getId()返回android:id值,或您通过设置的值setId()

我的 ID 如下所示:“field1”、“field2”

在您的 XML 中,它们可能看起来像@+id/field1@+id/field2. 这些是分配 ID 资源,在编译时转换为数字。这些是您在 Java 代码中称为R.id.field1和的数字R.id.field2

最后的这个数字对我的应用程序非常重要,我需要检索它们。有什么办法吗?

有一个大的 switch 语句将 ID 与R.id.field1等进行比较。或者,设置一个值和“非常重要”的数字HashMap之间的映射。getId()或者,在您的 ID 值上找到一些不涉及魔术名称的其他解决方案。

于 2012-12-26T19:25:43.437 回答
1

View 的 getId() 方法和 XML 文件中定义的 id 之间有什么关联?有没有?

文档

返回此视图的标识符。

相关 XML 属性

机器人:身份证

退货

用于标识视图的正整数,如果视图没有 ID,则为 NO_ID

于 2012-12-26T19:23:38.550 回答
1

It returns a positive number which android studio gives to every component of android app for backup use, In case the developer does not provide the ID of that component, android studio uses that number as a unique ID for that component.

于 2018-04-20T10:01:15.517 回答