2013-08-18 41 views
5

Tôi đã giải quyết vấn đề này nhưng không thể tìm thấy bất kỳ giải pháp nào, vui lòng trợ giúp. Tôi đã tạo ra một cái nhìn thanh tabbar có 3 tab với Tabhost và thiết lập tiêu đề của nó với TabSpec như thế này:Thay đổi tiêu đề của tabbar trong android

TabSpec tbhome = tabHost.newTabSpec("Home"); 
tbhome.setIndicator("Selected Topic"); 

tôi có 2 nút trong một tab của tôi mà là bên cạnh tab ở trên. Bây giờ những gì tôi muốn là, nếu tôi nhấp vào một nút trong tab này, tiêu đề cho nút này phải được đặt thành tiêu đề của tab trang chủ của tôi. Đó là ở trên mã "Chủ đề được chọn" phải được đặt thành tiêu đề của nút của tôi.

Cảm ơn.

+0

hãy đặt một số mã của bạn để những người khác có thể giúp bạn. –

+0

Tôi đang đặt tiêu đề của tab có mã ở trên và muốn thay đổi nó khi chạy trong khi nhấp vào nút từ bất kỳ hoạt động tab nào khác. !! Tôi không biết nhiều về các tab chỉ cần đặt chúng và tiêu đề của chúng, vv Vì vậy, tôi không có bất kỳ mã nào khác để đưa lên !! – Vish

+0

Tại sao tab tabhost chứ không phải tab action-bar? –

Trả lời

1

Tạo biến tĩnh và giá trị là "Chủ đề đã chọn" và trong sự kiện nhấp nút, làm cho thuộc tính của tiện ích con nút làm giá trị trong biến statis.Hope đây là ý của bạn.

+0

Không có thanh tab Monthy nào được tạo chỉ với một hoạt động và mỗi tab có hoạt động riêng. Bây giờ trong hoạt động của tab thứ hai của tôi, tôi có 2 nút ví dụ. Làm thế nào tôi nên thay đổi tên của "FIRST TAB" của tôi bằng tên của nút bấm. !! – Vish

+0

@Vish: Trước tiên, bạn cần phải hiểu rằng vấn đề của bạn không liên quan đến hoạt động hoặc tab. Nếu bạn muốn thay đổi tên của TAB ĐẦU TIÊN thành tên của nút khi được nhấp, hãy thử tạo biến chuỗi có tên là "myVariable" và gán văn bản của nút cho biến đó.Trong sự kiện nhấp chuột, hãy đọc văn bản của nút và đảm bảo rằng tbhome.setIndicator (myVariable); được đặt. – Mothy

+0

Nhưng cách tabActivity (nơi lần đầu tiên các tab được tạo) sẽ được gọi lại để đặt tên của tab! Tôi phải setIndicator bằng cách nào đó trong FIRSTTAB !! Đó là vấn đề thực sự.! – Vish

2

đầu tiên bạn nhận được nút và làm cho nó thức sau đó trên nhấp chuột đặt text của nó

 final Button bX = (Button) findViewById(R.id.bXX); 
     bX.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
        bX.setText("Selected Topic "); 
      } 
     }); 
+0

Không, Tabbar được tạo chỉ với một hoạt động và mỗi tab có hoạt động riêng. Bây giờ trong hoạt động của tab thứ hai của tôi, tôi có 2 nút ví dụ. Làm thế nào tôi nên thay đổi tên của "FIRST TAB" của tôi thành cái gì khác từ tab thứ hai. – Vish

2

Mã này có thể được tinh chế nhưng điều này shoud làm:

public void onClick(View button) 
{ 
    RelativeLayout tbhome = tabHost.getTabWidget().getChildAt(0); 
    for (int j = 0; j < tbhome.getChildCount(); j++) 
    { 
     if (tbhome.getChildAt(j) instanceof TextView) 
     { 
      ((TextView) tbhome.getChildAt(j)).setText(button.getText()); 
      break; 
     } 
    } 
} 
1

chưa được kiểm tra, nhưng tôi muốn thử gửi văn bản mới Bundle'd trong Intent từ hoạt động này sang hoạt động khác.

Có thể bắt nó bằng Activity.onNewIntent()

Các vấn đề liên quan