2012-08-15 4 views
0

내 앱의 모든 활동에 표시 할 맞춤 제목 표시 줄을 만들었습니다. 그것은 내 주요 활동에서 완벽하게 작동합니다 :맞춤 제목 바코드 깨기 onCreate()

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
setContentView(R.layout.main); 
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar); 

하지만 내 주요 활동은 다른 활동을 호출하고 내가 거기 같은 일을하려고 할 때 그것은 실패하십시오 findViewById를 할

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
setContentView(R.layout.layout_2); 
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar); 

시도를() 충돌 나는 무슨 일이 일어 났는지 확인하기 위해 시도/캐치 한 포장 :

TextView tv1; 
try {  
    tv1 = (TextView)findViewById(R.id.header); 
} 
catch (Exception e) { 
    Log.d("MyActivity2", "boom"); 
} 

예외는 원인 = ClassCastException이 detailMessage = android.widget.RelativeLayout

이 무엇을 의미하는지 나는 아무 생각

N.B.을 말한다requestWindowFeature()getWindow() 호출을 주석 처리하면 입니다.

이에 어떤 통찰력에 미리 감사드립니다!

+0

전체 LogCat 출력을 게시하십시오. –

답변

1

당신은 R.id.header은 텍스트 뷰 아닌 의미 ClassCastException를 받고있는 경우. 레이아웃에서 header은 Relativelayout의 이름입니다. TextView와 일치하도록 이것을 변경하십시오.

+0

Activity2 레이아웃에서 "머리글"은 TextView입니다. 제목 표시 줄에서 "머리글"은 RelativeLayout입니다. 그러나 Activity2의 onCreate() 루틴에서 "header"에 액세스하고 있으므로 Activity2에 대한 이름 범위가 있다고 생각하고 그렇지 않은 경우 빌드 타임에 캡처되었을 것입니다. 하지만 네임 스페이스 충돌을 피하기 위해 이름을 변경해 보겠습니다. – user316117

+0

좋아요, 제목 표시 줄에있는 RelativeLayout의 이름을 "title_rlayout"으로 바꿨습니다. Android의 XML 리소스 ID에 대한 범위 지정 규칙을 명확히하기 위해 새로운 질문을 게시했습니다. http://stackoverflow.com/questions/11988772/what-is-the-scope-of-androidid – user316117