<分区>
Possible Duplicate:
Scope of R.id values
有人可以阐明 Android 中资源 ID 的范围吗?最近我正在制作一个自定义标题栏,其中包含一个名为“header”的 RelativeLayout。因此,我在我的每个 Activity 的 onCreate() 处理程序中调用了这个标题栏:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_layout);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);
我的一个 Activity 在其布局中有一个 TextView,id 为“header”,在该 Activity 的 onCreate() 中我做了一个
TextView tv1 = (TextView)findViewById(R.id.header);
. . .它在运行时因 ClassCastException 而爆炸,显然是因为它认为我正在尝试将 RelativeLayout 转换为 TextView。更改标题栏中 RelativeLayout 的名称修复了它。
但是我真的不明白这个。 Android 资源 ID 是全局的吗?如果是这样,为什么不在构建时捕获此冲突?
请注意,这个问题之前已经在 SO 上被问过:Scope of R.id values . . . OP 说“据我所知”R.id 是全局性的,但我的问题不是重复的,因为我的两个问题都没有真正在那个问题中得到解决。