我想在我的应用中实现制表符和tablistener。
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。
答案 0 :(得分:2)
getActionBar()
返回null。如果您应用了非操作栏主题,请检查清单。如果是这样,则更改主题,以便活动具有actiobar。
public ActionBar getActionBar()
在API级别11中添加检索对此活动的引用&#39; s 动作条。
返回Activity的ActionBar,如果没有
,则返回null
答案 1 :(得分:1)
您使用的是哪个主题?检查Manifest中的主题是否为Theme.NoTitleBar。如果是这样,请将其更改为Theme.Holo。