我是Android开发的新手。是否可以在不同的TextViews
XML文件中使用相同的ID和Layout
?
当eclipse自动列出它们时,它列出了项目中的所有布局变量,它会发生碰撞吗?直到现在我还没有注意到在不同的布局中使用相同ID的任何问题,但我担心长期。
答案 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文件和类中重构它,您将遇到麻烦。