2015-06-12 2 views
0

Я использую Theme.AppCompat.Light.DarkActionBar и в своей основной деятельности, которая продолжается AppCompatActivity Я получаю ActionBar точно так, как ожидалось. В другой деятельности, которая также распространяется AppCompatActivity я получаю эти ошибки при загрузке деятельности:ActionBar не появляется при использовании Theme.AppCompat.Light.DarkActionBar

java.lang.RuntimeException: Unable to start activity ComponentInfo{activity2}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setBackgroundDrawable(android.graphics.drawable.Drawable)' on a null object reference 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306) 
     at  android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2366) 
     at android.app.ActivityThread.access$800(ActivityThread.java:149) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5290) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setBackgroundDrawable(android.graphics.drawable.Drawable)' on a null object reference 
     at com.nick.simplequiz.TabletGallery.onCreate(TabletGallery.java:53) 
     at android.app.Activity.performCreate(Activity.java:6020) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2259) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2366) 
            at android.app.ActivityThread.access$800(ActivityThread.java:149) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5290) 

ошибка вызвана этими линии:

ActionBar bar = getActionBar(); 
    bar.setBackgroundDrawable(new ColorDrawable(0xff01579b)); 
    bar.setDisplayShowTitleEnabled(false); 
    bar.setDisplayShowTitleEnabled(true); 

И без этих строк, вызывающей ошибку активности будет работать и панель действий не отображается. Почему панель действий не отображается при использовании этой темы?

ответ

1

Использование getSupportActionBar() получить ActionBar в вашем AppCompatActivity:

ActionBar bar = getSupportActionBar(); 
bar.setBackgroundDrawable(new ColorDrawable(0xff01579b)); 
bar.setDisplayShowTitleEnabled(false); 
bar.setDisplayShowTitleEnabled(true); 
Смежные вопросы