Sono appena passato da ActionBarSherlock a ActionBarCompat e tutto funzionava bene fino a quando non mi sono imbattuto in questo piccolo errore. Ho un'attività di base che si estende ActionBarActivity
e ha 3 frammenti associati ad esso. In uno dei onAttach
metodo di Frammenti, provo l'esecuzione di questo codice:NullPointerException quando si chiama getSupportActionBar() dall'interno di Fragment (ActionBarCompat)
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
final ActionBar actionBar = ((ActionBarActivity)activity).getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setTitle("");
}
Funziona bene fino a quando provo a cambiare il mio orientamento dello schermo. Quindi ottengo un NullPointerException
per questa riga di codice: actionBar.setHomeButtonEnabled(true);
.
Come posso risolvere questo?
Edit:
Ecco l'intero registro di errore:
06-10 18:53:31.440: E/AndroidRuntime(18586): FATAL EXCEPTION: main
06-10 18:53:31.440: E/AndroidRuntime(18586): Process: com.packagename.appname, PID: 18586
06-10 18:53:31.440: E/AndroidRuntime(18586): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.packagename.appname/com.packagename.appname.activities.NewActivity}: java.lang.NullPointerException
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2328)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3947)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.app.ActivityThread.access$1000(ActivityThread.java:169)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.os.Handler.dispatchMessage(Handler.java:102)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.os.Looper.loop(Looper.java:136)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.app.ActivityThread.main(ActivityThread.java:5476)
06-10 18:53:31.440: E/AndroidRuntime(18586): at java.lang.reflect.Method.invokeNative(Native Method)
06-10 18:53:31.440: E/AndroidRuntime(18586): at java.lang.reflect.Method.invoke(Method.java:515)
06-10 18:53:31.440: E/AndroidRuntime(18586): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
06-10 18:53:31.440: E/AndroidRuntime(18586): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
06-10 18:53:31.440: E/AndroidRuntime(18586): at dalvik.system.NativeStart.main(Native Method)
06-10 18:53:31.440: E/AndroidRuntime(18586): Caused by: java.lang.NullPointerException
06-10 18:53:31.440: E/AndroidRuntime(18586): at com.packagename.appname.fragments.NewFragment.onAttach(NewFragment.java:144)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:883)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:1879)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:215)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:97)
06-10 18:53:31.440: E/AndroidRuntime(18586): at com.packagename.appname.activities.NewActivity.onCreate(NewActivity.java:73)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.app.Activity.performCreate(Activity.java:5451)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
06-10 18:53:31.440: E/AndroidRuntime(18586): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
06-10 18:53:31.440: E/AndroidRuntime(18586): ... 12 more
FYI: NewFragment
linea 144 è: actionBar.setHomeButtonEnabled
.
dopo l'errore non solo parte di esso –
@Rod_Algonquin appena aggiunto che – lschlessinger