2012-11-22 3 views
2

다른 레이아웃을 사용하여 응용 프로그램에 다른 스타일의 제목을 표시하고 있습니다. 문제는 그들 모두에 존재하는 특정 Textview에 대한 참조를 얻을 수 없다는 것입니다. 텍스트를 변경하면 아무 일도 일어나지 않습니다. 여기 커스텀 타이틀 뷰를 얻는 방법?

내가 뭐하는 거지입니다 :

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

다음 방법은 작동하지 않습니다 내가 잘못된보기를 액세스하는 것 같아 있도록

public void setTitle(String text) { 
    TextView txtTitle = (TextView) this.findViewById(R.id.txtTitle); 
    if(txtTitle !=null) { 
     txtTitleMoney.setText(text); 
     Log.d("debug", "not null"); 
    } 
} 

내가 오류를 얻을 수 없습니다.

희망 누군가가 나를 :) 도움이 될 수 있습니다

+0

txtTitle에서 null을 확인한 다음 txtTitleMoney를 수정하는 이유는 무엇입니까? txtTitleMoney가 null이 아니라는 것을 어떻게 알 수 있습니까? –

+0

xml 레이아웃을 표시 할 수 있습니까? – everlasto

답변

5

동일한 ID를 설정 한 경우 다음 다른 제목 레이아웃 모두에서 TextView 항목 ("txtTitle") 코드를 시도 작동해야합니다. setContentView() 다음에 setTitle()으로 전화하십시오.

5

boolean customTitleSupported; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  
    setContentView(R.layout.mainscreen); 

    customTitleBar(); 
} 

public void customTitleBar() { 

    if (customTitleSupported) { 
      getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, 
          R.layout.customtitlebar); 
      TextView title = (TextView) findViewById R.id.title);    
      title.setText(left);    
    } 
} 
+0

문제는 레이아웃을 즉시 변경한다는 것입니다. 나는 생성시에만 setFeatureInt를 호출하지 않지만 사용자가 탭을 변경할 때마다 호출합니다. –

+0

즉석에서 레이아웃을 변경하고 있습니까? 그것이 의미하는 것을 의미합니다. –

+0

코드 완료 –

관련 문제