重複の可能性:
R.id値の範囲
誰かがAndroidのリソースIDの範囲を明確にしてくれませんか?最近、「ヘッダー」と呼ばれるRelativeLayoutを含むカスタムタイトルバーを作成していました。したがって、各アクティビティのonCreate()ハンドラーでこのタイトルバーを呼び出していました。
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_layout);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);
私のアクティビティの1つは、レイアウトに「header」のIDを持つTextViewがあり、そのアクティビティのonCreate()で
TextView tv1 = (TextView)findViewById(R.id.header);
。。。これは、実行時にClassCastExceptionで爆発しました。これは、RelativeLayoutをTextViewにキャストしようとしていると考えたためと思われます。タイトルバーのRelativeLayoutの名前を変更すると、修正されました。
しかし、私はこれを本当に理解していません。AndroidリソースIDはグローバルですか?もしそうなら、なぜこの衝突はビルド時にキャッチされないのでしょうか?
この質問は以前にSO:R.id値の範囲で尋ねられたことに注意してください 。。。OPが「私が知る限り」と言った場合、R.idはグローバルですが、私の質問はどちらも実際にはその質問に対応していないため、重複していません。