2010-08-27 152 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() ;