获取tabHost中选定选项卡的索引

9

我正在尝试在onSaveInstanceState中存储当前选定选项卡的索引,以便恢复它。但是getCurrentTab显然会返回我在etTabHost().newTabSpec中使用的字符串,这让我感到有点奇怪,因为文档说它返回一个整数,并且setCurrentTab也接受一个整数。有人知道如何获取当前选定选项卡的索引,以便恢复它吗?


1
你确定你调用了TabHost.getCurrentTab()吗?它返回int类型。可能你把它和getCurrentTabTag()搞混了? - Konstantin Burov
我很确定,这就是为什么我觉得它很奇怪的原因。 - Jack
1
你使用的安卓版本是什么? - Konstantin Burov
我从列表中选择了2.2版的谷歌,但我不认为我正在使用任何特定的功能。 - Jack
3个回答

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());
        }       
    });  
...
...
...

我目前没有代码所在的笔记本电脑,所以我得明天再试一下。但是为什么在onTabChanged事件中使用getCurrentTab和在onSaveInstanceState中使用它会有任何区别呢?感谢您的回答。 - Jack

6
您可以使用getCurrentTab()函数,它返回从0开始的选项卡索引。

那个方法属于哪个对象?something.getCurrentTab(),而 something 是什么? - dialex

2
使用tabHost.getCurrentTab()获取选项卡...
tabHost= getTabHost();
tabHost.addTab(tab0); // TabSpec tab0=tabHost.newTabSpec(...
tabHost.addTab(tab1); //  TabSpec tab1=tabHost.newTabSpec

int current = tabHost.getTabHost() ;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接