我在ActionBarActivity
中有一个TabActivity
。当我调用getSupportActionBar()
等setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)
之类的方法时,ActionBarActivity
会抛出NPE。
我花了很多时间来搜索stackoverflow但没有工作。
Theme.AppCompat.Light
代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_news);
bar = getSupportActionBar();
(line 38)bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.setDisplayShowTitleEnabled(false);
bar.setDisplayShowHomeEnabled(false);
pager = (ViewPager) findViewById(R.id.news_pager);
urlGenerator = new UrlGenerator("getNewsClasses");
pagerAdapter = new NewsPagerAdapter(getSupportFragmentManager());
pager.setAdapter(pagerAdapter);
pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
bar.setSelectedNavigationItem(position);
}
});
}
错误:
Caused by: java.lang.NullPointerException
at android.support.v7.app.ActionBarImplICS.setNavigationMode(ActionBarImplICS.java:229)
at android.support.v7.app.ActionBarImplJB.setNavigationMode(ActionBarImplJB.java:20)
at com.ccw.estate.news.NewsActivity.onCreate(NewsActivity.java:38)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
... 24 more
清单:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="name"
android:label="label" >
</activity>
</application>
AppTheme:
<style name="AppTheme" parent="Theme.AppCompat.Light">
谁知道它是怎么回事。谢谢!
答案 0 :(得分:3)
您是否添加了ActionBarActivity的属性(android:windowNoTitle)? 添加&#34; android:windowNoTitle&#34;表示没有创建操作栏。因此getSupportActionBar()将返回null。