2010-05-29 4 views
13

내 애플리케이션에서 탭 표시기를 동적으로 업데이트해야하는데, TabSpec.setIndicator()를 호출하여이를 수행하려하지만 작동하지 않습니다.안드로이드에서 탭 표시기를 동적으로 수정하십시오.

TabActivity의에서 onCreate 방법에있어서 : 여기 내 코드입니다

tabHost = getTabHost(); 
TabSpec tabSpec = tabHost.newTabSpec("abc"); 
tabSpec.setIndicator("helloabc"); 
tabSpec.setContent(new MyViewFactory()); 
tabHost.addTab(tabSpec); 

가 지금은, 예를 들어, 다른 문자열로

TabSpec tabSpec = MyTabActivity.getTabSpec(); 
tabSpec.setIndicator("xyz"); 

"XYZ"를 탭 표시를 변경해야하지만 '아무튼 일하지 마라. 그래서 탭 표시기를 tabhost에 추가 한 후이를 변경하는 방법을 알고 싶습니다. 많은 감사합니다. 나는 내 이전 오답에 대해 사과

TextView title = (TextView) tabHost.getTabWidget().getChildAt(tabId).findViewById(android.R.id.title) 
title.setText("xyz"); 
+0

내가 이미지 표시이 방법을 변경할 수 있습니까? – keen

답변

13

, 지금은 삭제 된 : @CommonsWare에

솔루션

감사합니다, 나는 TabWidget.getChildAt를 사용하여 만들어, 여기에 사용자의 편의를 위해 내 코드입니다 .

TabWidgetgetChildViewAt()을 사용해보세요.

+0

탭 표시 줄의 이미지 표시기를 어떻게 바꿀 수 있습니까? – keen

7

여러 탭의 경우 childviewAt(id) 대신 getChildTabViewAt(tabId)으로 관리됩니다.

1

이 시도 :

TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title); 
관련 문제