2016-06-13 26 views
0

Ich benutze Android 2.1 und möchte eine Zurück-Schaltfläche zu einer MapsAvtivity hinzufügen. Ich habe versucht, was auf dieser Seite [Display back button on action bar aber die Anwendung abstürzt. Ich habe ersetzt Fragment erweitertActivity mit AppCompatActivity wie in einem anderen Forum empfohlen wurde, aber die Anwendung noch abstürzt. Ich weiß, dass es etwas mit der Aktionsleiste zu tun hat, denn wenn ich es entferne, funktioniert die Anwendung. Es scheint, dass die Aktionsleiste null ist. Ich stecke fest und habe die Bewerbung mehrmals gestartet. Hier ist der Fehler:Hinzufügen einer Zurück-Schaltfläche Aktivität

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pc.canda.theplacestosee/com.pc.canda.theplacestosee.MapsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference 
                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
                         at android.app.ActivityThread.access$800(ActivityThread.java:144) 
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
                         at android.os.Handler.dispatchMessage(Handler.java:102) 
                         at android.os.Looper.loop(Looper.java:135) 
                         at android.app.ActivityThread.main(ActivityThread.java:5221) 
                         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:899) 
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
                        Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference 
                         at com.pc.canda.theplacestosee.MapsActivity.onCreate(MapsActivity.java:31) 
                         at android.app.Activity.performCreate(Activity.java:5937) 
                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
                         at android.app.ActivityThread.access$800(ActivityThread.java:144) 
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
                         at android.os.Handler.dispatchMessage(Handler.java:102) 
                         at android.os.Looper.loop(Looper.java:135) 
                         at android.app.ActivityThread.main(ActivityThread.java:5221) 
                         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:899) 
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694 
+0

Können Sie den Code in Ihrer onCreate-Methode veröffentlichen? – Jay

+0

Welches Thema wird verwendet? Hat es ActionBar? – user35603

+1

Bitte poste 'MapsActivity.onCreate()', Manifest file und styles.xml. –

Antwort

2

Ein paar Dinge. Stellen Sie sicher, dass Ihre Aktivität AppCompatActivity erweitert, stellen Sie sicher, dass der von Ihnen verwendete Stil eine Aktionsleiste hat (Sie legen dies im Manifest fest).

android:theme="@style/AppTheme" 

Stellen Sie sicher, die richtige Aktion bar (ActionBar oder SupportActionBar) verwenden

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

oder

getActionBar().setDisplayHomeAsUpEnabled(true); 

schließlich die onOptionsItemSelected Methode hinzufügen, damit das Back-Button weiß, was zu machen.

public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
     case android.R.id.home: 
      finish(); 
      return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
+0

Schätzen Sie Ihre Hilfe. Ich kann dir nicht genug danken. – kyzen

+0

Kein Problem! Würde es Ihnen etwas ausmachen, die Antwort zu akzeptieren, wenn Sie eine Chance bekommen? – Jay

Verwandte Themen