2010-08-27 66 views
9

我試圖在onSaveInstanceState中存儲當前選定選項卡的索引,以便我可以恢復它。然而,getCurrentTab設法讓我回到了我在etTabHost()。newTabSpec中使用的字符串,我發現它有點奇怪,因爲文檔說它返回一個int並且setCurrentTab也接受一個int。 有誰知道我可以如何獲得我當前所選標籤的索引,以便我可以恢復它?獲取tabHost中選定選項卡的索引

+1

你確定你調用TabHost.getCurrentTab()?它返回int。可能你用getCurrentTabTag()錯誤地放置了它? – 2010-08-27 10:51:50

+0

我確定,這就是爲什麼我覺得它很奇怪。 – Jack 2010-08-27 12:39:34

+1

你使用什麼android版本? – 2010-08-27 13:42:11

回答

26

你是在正確的方式,使用setOnTabChangedListener來得到您選擇的選項卡。

public class MainActivity extends TabActivity { 
      static TabHost mytabs; 

     mytabs = getTabHost(); 
      mytabs.setOnTabChangedListener(new OnTabChangeListener() { 
       @Override 
       public void onTabChanged(String arg0) {   
        Log.i("***Selected Tab", "Im currently in tab with index::" + mytabs.getCurrentTab()); 
       }  
      }); 
... 
... 
... 
+0

我目前沒有使用我的筆記本電腦的代碼,所以我不得不在明天嘗試這個,但爲什麼它會在onTabChanged事件或我的onSaveInstanceState中使用getCurrentTab? 並感謝您的當前答案。 – Jack 2010-08-29 14:52:25

+0

好的一個它幫助我在我的工作gr8回答 – Ramz 2012-06-24 14:55:54

6

您可以使用getCurrentTab()返回從0

+0

該方法屬於哪個對象? 'something.getCurrentTab()'和什麼東西? – dialex 2016-03-11 13:51:29

+0

其TabHost對象.. – Pranav 2016-03-17 13:56:51

2

使用tabHost.getCurrentTab()選項卡開始的指數以獲得選項...

tabHost= getTabHost(); 
tabHost.addTab(tab0); // TabSpec tab0=tabHost.newTabSpec(... 
tabHost.addTab(tab1); // TabSpec tab1=tabHost.newTabSpec 

int current = tabHost.getTabHost() ;