2010-09-11 60 views

回答

3

將監聽器連接到TabHost.OnTabChangeListener。您的主要活動延伸TabActivity及其onCreate方法可能看起來是這樣的:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    TabHost tabHost = getTabHost(); 

    LayoutInflater.from(this).inflate(R.layout.tabs1, tabHost.getTabContentView(), true); 

    tabHost.addTab(tabHost.newTabSpec("tab1") 
      .setIndicator("tab1") 
      .setContent(R.id.view1)); 
    tabHost.addTab(tabHost.newTabSpec("tab3") 
      .setIndicator("tab2") 
      .setContent(R.id.view2)); 
    tabHost.addTab(tabHost.newTabSpec("tab3") 
      .setIndicator("tab3") 
      .setContent(R.id.view3)); 
} 

掛鉤的監聽器,添加以下代碼在你onCreate()方法:

tabHostt.setOnTabChangedListener(new OnTabChangeListener(){ 
    @Override 
    public void onTabChanged(String tabId) { 
     if(tabId.equals("tab1")) { 
      //tab1 
     } 
     else if(tabId.equals("tab2")) { 
      //tab2 
     } 
     else if(tabId.equals("tab3")) { 
      //tab3 
     } 
    } 
}); 

HTH

+0

我真的很新,我該怎麼辦呢? 我有4個文件,一個在應用程序啓動時運行,另一個是標籤的活動。 – Mitchell 2010-09-11 23:43:15

+0

我已經更新了上面的答案,以包含如何執行此操作的代碼。 – dhaag23 2010-09-12 01:01:52

1

像這樣的東西應該可以工作:

tabHost.setOnTabChangedListener(new OnTabChangeListener() 
    { 
     public void onTabChanged(String tabId) 
     { 
      //Do stuff in here 
     } 
    }); 
+0

好的,所以現在當我切換我的標籤時被調用!現在我只需要告訴它在從它切換的活動中運行一個方法。幫幫我? – Mitchell 2010-09-12 00:12:11

+0

只需在「請填寫評論」的方法中添加一個調用即可。 – kcoppock 2010-09-12 00:15:01

+0

我還有一個問題。這會在任何選項卡更改時執行。但是當我選擇或取消選擇代表該活動的選項卡時,是否可以在活動中使用執行方法。 – Mitchell 2010-09-12 01:19:24

相關問題