我可以在Android中的不同布局中使用相同的ID吗?

时间:2012-09-08 19:03:51

标签: android android-layout

我是Android开发的新手。是否可以在不同的TextViews XML文件中使用相同的ID和Layout

当eclipse自动列出它们时,它列出了项目中的所有布局变量,它会发生碰撞吗?直到现在我还没有注意到在不同的布局中使用相同ID的任何问题,但我担心长期。

4 个答案:

答案 0 :(得分:114)

简短回答:是的,你可以。

答案很长:您可以这样做,因为每当您使用findViewById()获取对布局的一部分的引用时,该方法仅在当前膨胀的布局中查找该视图。因此,即使您在另一个布局中有另一个具有相同ID的视图,Android也不会在那里查找它。

答案 1 :(得分:84)

建议您为不同的布局使用不同的ID。从长远来看,当你有很多布局并且因此有很多id时,区分它们会变得非常复杂。

我通常会这样命名我的ID:layoutName_elementId

我可以轻松找到我正在寻找的ID,特别是在使用自动完成时(我知道我正在使用哪种布局,但我不知道id;在这种情况下,我的命名策略,我只输入布局名称,它会带来该布局的所有ID。

有关布局和ID的更多信息,请参见here

快乐编码,

答案 2 :(得分:19)

根据开发人员API指南:

  

ID在整个树中不一定是唯一的,但应该是   在您正在搜索的树的一部分中是唯一的(可能经常   是整棵树,所以最好是完全独特的   可能的)。

所以简短的回答是它不是强制性的,但避免可能的冲突是一种很好的做法。

答案 3 :(得分:9)

不推荐,因为如果以后您将更改视图和重构ID,Android Studio将在所有xml文件和类中重构它,您将遇到麻烦。