View方法getId()返回什么?

时间:2012-12-26 19:18:42

标签: android

View的getId()方法和XML文件中定义的id之间有什么关系?有没有?我的ID看起来像这样:“field1”,“field2”......最后这个数字对我的应用程序非常重要,我需要检索它们。有没有办法做到这一点?

4 个答案:

答案 0 :(得分:16)

获取资源ID名称:

res.getResourceEntryName(view.getId())

你会得到“field1”

答案 1 :(得分:15)

  

View的getId()方法与XML文件中定义的id之间有什么共同关系?

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

  

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

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

  

最后这个数字对我的应用程序非常重要,我需要检索它们。有没有办法做到这一点?

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

答案 2 :(得分:1)

  

View的getId()方法和id之间的相互关系是什么   在XML文件中定义?有没有?

来自documentation

  

返回此视图的标识符。

     

相关的XML属性

     

机器人:ID

     

返回

     

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

答案 3 :(得分:1)

它返回一个正数,android studio为Android应用程序的每个组件提供备份使用,如果开发人员不提供该组件的ID,android studio将该数字用作该组件的唯一ID。