2010-02-18 6 views
5

내 응용 프로그램에 3 개의 탭이 있습니다. 한 탭 아래의 이벤트에서 다른 기존 탭의 제목을 변경하고 싶습니다. 이것은 TabHost에 탭을 추가하는 동안 우리가 제공하는 제목입니다.동적으로 탭의 제목을 변경하는 방법

예 : TabHost.addTab (tabHost.newTabSpec ("TAB2")) setIndicator ("I 동적으로 변경해야")의 setContent .... 위의 예에서

상기의 제목.. setIndicator()에서 제공 한 tab2는 동적으로 변경되어야합니다.

이 작업을 수행 할 수있는 방법이 있습니까?

답변

3

표시기를 String으로 설정하는 대신 View을 사용하도록 설정하십시오. 그런 다음 View (예 : TextView)을 붙잡고 필요에 따라 내용을 변경하십시오.

7

깨끗한 방법을 찾을 수 없다면 TabWidget에 액세스 할 수 있습니다. TabWidget에 포함 된 각각의 탭에 대한 상대적 레이아웃은 각각 ImageViewTextView을 포함합니다. 직접 인덱스 0에있는 탭에서 텍스트 뷰에 액세스하려면이 작업을 수행 할 수 있습니다

mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title); 

그럼 그냥 TextView로 캐스팅하고 편집 할 수 있습니다 그러나 당신이 원하는. 아래는 나를 위해 일한 :

((TextView)mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title)).setText("New"); 
-1

당신은 ICS에 대한 더 이상 "TabHost"를 사용하지 않아야합니다, 그것은 ... 당신이 "액션 바 '필요 대신 버전 13에서 사용되지

Tab mTab = super.getSupportActionBar().getTabAt(0); 
mTab.setText("new Title"); 

Android에서 바로 탭을 새로 고침

+0

TabHost는 (는) 사용되지 않습니다. 너 어디서 나올거야? – AsafK

관련 문제