2010-05-29 21 views
13

Ứng dụng của tôi cần cập nhật chỉ báo tab động, tôi đang cố thực hiện điều này bằng cách gọi TabSpec.setIndicator(), nhưng nó không hoạt động. Đây là mã của tôi:Sửa đổi chỉ báo tab động trong Android

Trong phương pháp onCreate của TabActivity:

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

Bây giờ tôi cần phải thay đổi chỉ số tab để chuỗi khác, ví dụ, "xyz"

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

Nhưng nó doesn' t làm việc. Vì vậy, tôi muốn biết làm thế nào để thay đổi chỉ báo tab sau khi nó được thêm vào tabhost? Cảm ơn nhiều.

Giải pháp

Nhờ @CommonsWare, tôi làm cho nó bằng cách sử dụng TabWidget.getChildAt, đây là mã của tôi thuận tiện cho bạn:

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

tôi có thể thay đổi các chỉ số hình ảnh theo cách này? – keen

Trả lời

13

Tôi xin lỗi vì câu trả lời không chính xác trước đây của tôi, bây giờ bị xóa .

Thử sử dụng getChildViewAt() trên TabWidget.

+0

Làm cách nào để thay đổi chỉ báo hình ảnh của thanh tab? – keen

7

tôi đã quản lý với getChildTabViewAt(tabId) thay vì childviewAt(id) cho nhiều tab.

1

Hãy thử điều này:

TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title); 
Các vấn đề liên quan