我们都知道,在使用生成Android ID时

@+id/foo

Android为我们在R.java中创建了一个条目,例如:
 public static final class id {
        public static final int foo=0x7f060005;
 }

如果在不同的xml文件中发生名称冲突(例如,在两个布局中),会发生什么? @ + id机制可确保我们覆盖另一个仍然存在的id名称,但是R.java中为我们生成了哪个ID?

最佳答案

如果该ID不存在或使用现有ID,则会添加@+id/foo语法。
当您找到ViewById时,它将在您调用该方法的 View 上进行操作。

因此,如果您具有嵌套 View ,则每个 View 的ID都是唯一的。
例如View1-> View2都具有foo。View1.findViewById(R.id.foo)将与View2.findViewById(R.id.foo)不同

编辑:我想主要要提到的是两个布局不能具有相同的ID。
有关id约束的更多信息:http://d.android.com/guide/topics/ui/declaring-layout.html

关于android - R.java的Android id冲突机制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2111512/

10-15 00:50
查看更多