So navigieren Sie zu einer übergeordneten Aktivität

Nun, wenn ich arbeite an etwas und ich muss die Action-Bar in meiner App konfigurieren Ich begann von der http://developer.android.com und ich fand, was ich suche

public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item);} 

Natürlich nach dem Hinzufügen der

  • Eine Aktivität auf onCreate abschließen
  • Android-Closing-Aktivität programmgesteuert
  • Android bekommt vorherige Aktivität
  • Tätigkeiten vom Service benachrichtigen
  • Einstellen des Flags in onSaveInstanceState () zur Bestimmung des Exit-Typs in onDestroy ()
  • Übergeordnete Ressourcen zur Laufzeit
  •  <activity android:name="com.example.myfirstapp.DisplayMessageActivity" android:label="@string/title_activity_display_message" android:parentActivityName="com.example.myfirstapp.MainActivity" > <!-- Parent activity meta-data to support 4.0 and lower --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity" /> </activity> 

    und das

     @Override public void onCreate(Bundle savedInstanceState) { ... getActionBar().setDisplayHomeAsUpEnabled(true); } 

    Ich tat all dies, aber wenn auf meinem Programm ich drücke die up-Taste in der Aktionsleiste das Programm abstürzt und hier ist die Logcat

     09-04 12:54:02.087: E/AndroidRuntime(11033): FATAL EXCEPTION: main 09-04 12:54:02.087: E/AndroidRuntime(11033): java.lang.IllegalArgumentException: Activity LegendActivity does not have a parent activity name specified. (Did you forget to add the android.support.PARENT_ACTIVITY <meta-data> element in your manifest?) 09-04 12:54:02.087: E/AndroidRuntime(11033): at android.support.v4.app.NavUtils.navigateUpFromSameTask(NavUtils.java:177) 09-04 12:54:02.087: E/AndroidRuntime(11033): at com.yay.android.projects.stories.LegendActivity.onOptionsItemSelected(LegendActivity.java:44) 09-04 12:54:02.087: E/AndroidRuntime(11033): at android.app.Activity.onMenuItemSelected(Activity.java:2611) 09-04 12:54:02.087: E/AndroidRuntime(11033): at com.android.internal.widget.ActionBarView$3.onClick(ActionBarView.java:206) 09-04 12:54:02.087: E/AndroidRuntime(11033): at android.view.View.performClick(View.java:4261) 09-04 12:54:02.087: E/AndroidRuntime(11033): at android.view.View$PerformClick.run(View.java:17356) 09-04 12:54:02.087: E/AndroidRuntime(11033): at android.os.Handler.handleCallback(Handler.java:615) 09-04 12:54:02.087: E/AndroidRuntime(11033): at android.os.Handler.dispatchMessage(Handler.java:92) 09-04 12:54:02.087: E/AndroidRuntime(11033): at android.os.Looper.loop(Looper.java:137) 09-04 12:54:02.087: E/AndroidRuntime(11033): at android.app.ActivityThread.main(ActivityThread.java:4921) 09-04 12:54:02.087: E/AndroidRuntime(11033): at java.lang.reflect.Method.invokeNative(Native Method) 09-04 12:54:02.087: E/AndroidRuntime(11033): at java.lang.reflect.Method.invoke(Method.java:511) 09-04 12:54:02.087: E/AndroidRuntime(11033): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 09-04 12:54:02.087: E/AndroidRuntime(11033): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 09-04 12:54:02.087: E/AndroidRuntime(11033): at dalvik.system.NativeStart.main(Native Method) 

    Alles ist genau wie sie sagten natürlich habe ich die aktivitätsnamen geändert, die den Namen entsprechen Ich habe was ist das Problem hier?

  • Die meisten Speicher effizienter Weg, um die Größe von Bitmaps auf Android?
  • Gerät wird bei der Verbindung mit dem USB-Kabel nicht in Eclipse erkannt
  • Sortieren eines Arrays von Dateinamen mit Strings mit Zahlen
  • Was tun, wenn Sie versuchen, eine Android-App zu erstellen, und 'Kein Ziel verfügbar'?
  • Android: wie man beharrlich aufbewahrt?
  • Eine Ressource existiert mit einem anderen Fall
  • One Solution collect form web for “So navigieren Sie zu einer übergeordneten Aktivität”

    Sie müssen die übergeordnete Aktivität in der Maniifest-Datei festlegen

     <activity android:name="com.example.MainActivity" android:label="@string/title_activity_main" android:parentActivityName="com.example.MainUIActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.SampleActivity" /> </activity> 

    Oder benutze den Support-V4 wie folgt

     NavUtils.navigateUpTo(sourceActivity, upIntent); 

    Oder probiere die in diesem Beitrag erwähnte Lösung aus

     @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Intent upIntent = new Intent(this, YourListActivity.class); if (NavUtils.shouldUpRecreateTask(this, upIntent)) { // This activity is not part of the application's task, so // create a new task // with a synthesized back stack. TaskStackBuilder .from(this) .addNextIntent(new Intent(this, HomeActivity.class)) .addNextIntent(upIntent).startActivities(); finish(); } else { // This activity is part of the application's task, so simply // navigate up to the hierarchical parent activity. NavUtils.navigateUpTo(this, upIntent); } return true; } } 

    Dies ist der beste Weg, dies zu tun mit Android weniger als API Level 11

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.