-1

我在做我的 Android 应用程序时遇到了障碍。我的问题是我无法为我的选项卡创建 onTabListener。我有三个不同名称的选项卡。问题是它们都有相同的标签计数。在我的代码中,我运行了这个:

public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
        int n = getActionBar().getTabCount();
        Toast.makeText(getApplicationContext(), "You have selected: " + n, Toast.LENGTH_LONG).show();
    }

这使得 toast 表示选项卡的值(例如:0、1、2、3),但所有选项卡都有相同的指示符。如果我的所有选项卡都具有相同的指示器,我将无法创建 onTabListener。这是我的完整代码:

ActionBar.TabListener tabListener = new ActionBar.TabListener() {
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
        int n = getActionBar().getTabCount();
        Toast.makeText(getApplicationContext(), "You have selected: " + n, Toast.LENGTH_LONG).show();
    }

    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
        // hide the given tab
    }

    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
        // probably ignore this event
    }
};

// Add 3 tabs, specifying the tab's text and TabListener
for (int i = 0; i < 3; i++) {
    actionBar.addTab(
            actionBar.newTab()
                    .setText(tabTitle[i])
                    .setTabListener(tabListener));
}

问题是什么?有什么方法可以使用标签的标题创建 onTabListener 吗?对此问题的任何帮助将不胜感激。

4

1 回答 1

0

您所做的就是获取您拥有的标签数量...

你需要做tab.getPosition()的是选择什么

public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
    int n = tab.getPosition();
    Toast.makeText(getApplicationContext(), "You have selected: " + n, Toast.LENGTH_LONG).show();
}
于 2013-06-24T20:07:33.507 回答