繁体   English   中英

为什么我的TabListener不起作用?

[英]Why doesn't my TabListener work?

我想为我的应用实现标签和标签侦听器。

    public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final ActionBar actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        ActionBar.Tab tabA = actionBar.newTab();
        tabA.setText("Tab A");
        tabA.setTabListener(new TabListener<Tab1>(this, "Tag A", Tab1.class));
        actionBar.addTab(tabA);

        Tab tabB = actionBar.newTab();
        tabB.setText("Tab B");
        tabB.setTabListener(new TabListener<Tab2>(this, "Tag B", Tab2.class));
        actionBar.addTab(tabB);

        Tab tabC = actionBar.newTab();
        tabC.setText("Tab C");
        tabC.setTabListener(new TabListener<Tab3>(this, "Tag C", Tab3.class));
        actionBar.addTab(tabC);

        if (savedInstanceState != null) {
            int savedIndex = savedInstanceState.getInt("SAVED_INDEX");
            getActionBar().setSelectedNavigationItem(savedIndex);
        }

    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        // TODO Auto-generated method stub
        super.onSaveInstanceState(outState);
        outState.putInt("SAVED_INDEX", getActionBar().getSelectedNavigationIndex());
    }

}

但是我从这一行得到一个NullPointerException:

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

有人可以告诉我为什么以及怎么做吗?

如果需要,我将添加其他类和StackTrace。

getActionBar()返回null。 如果您应用了非操作栏主题,请检查清单。 如果是这样,请更改主题,以使活动具有活动栏。

公共ActionBar getActionBar()

API级别11中已添加。检索对该活动的ActionBar的引用。

返回活动的ActionBar;如果没有,则返回null

您正在使用哪个主题? 检查主题是否为清单中的Theme.NoTitleBar。 如果是这样,请将其更改为Theme.Holo。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM