Zurück zu der übergeordneten Aktivität in ActionBar, ohne das Ereignis der Schaltfläche "Up" zu verarbeiten

8

Ich habe zwei Aktivitäten, bei denen diese Navigation stattfinden soll, sie sind VendorsActivity und QuestionsActivity. Das folgende, wie meine AndroidManifest.xml aussieht:

(Ich verwende nicht den vollständigen Namen meiner Aktivitäten wie com.hello.world.MyActivity , da ich package Attribut in manifest node definiert habe.)

%Vor%

Und in TestsActivity rufe ich getActionBar().setDisplayHomeAsUpEnabled(true); method von onCreate method auf.

Das Problem ist, es wird nicht funktionieren, wenn ich die folgende Methode in .TestsActivity class implementieren:

%Vor%

Aber der Android-Entwicklerleitfaden sagt, dass ich das Ereignis der Schaltfläche "Oben" nicht behandeln muss, wie unten auf der Treffer-Seite erwähnt: Ссылка

  

Weil das System jetzt weiß, dass MainActivity die übergeordnete Aktivität für ist   DisplayMessageActivity, wenn der Benutzer die Up-Taste drückt, die   Das System navigiert zu der übergeordneten Aktivität, die Sie nicht benötigen   um das Ereignis der Up-Taste zu behandeln.

Bearbeiten und beantworten:

Wie Android-Entwicklerhandbuch sagt:

  

Ab Android 4.1 (API-Stufe 16) können Sie das logische deklarieren   Übergeordnetes jeder Aktivität durch Angabe von android: parentActivityName   Attribut im Element.

     

Wenn Ihre App Android 4.0 und niedriger unterstützt, fügen Sie den Support hinzu   Bibliothek mit Ihrer App und fügen Sie ein Element in der   . Geben Sie dann die übergeordnete Aktivität als Wert für ein   android.support.PARENT_ACTIVITY, passend zu   android: parentActivityName-Attribut.

Also ich denke mein Problem hatte zwei Gründe:

  1. Ausführen der App auf einem geeigneten Emulator. Ich zielte auf eine höhere Version ab, aber der Emulator lief auf API 14 (Android 4.0), so dass er nicht wusste, wie er mit android:parentActivityName attribute umgehen sollte.

  2. Targeting der richtigen API-Ebene in den Eigenschaften des Projekt-Build-Ziels wie folgt:

    
Tarik 30.11.2013, 17:56
quelle

4 Antworten

6

android: parentActivityName-Attribut wird nur nach API-Ebene unterstützt.

Eine Alternative ist support-library: v7 kombiniert mit NavUtils .

Es gibt ein tolles Schulungsmaterial zu diesem Thema (einschließlich Kompatibilitätsproblem). bitte prüfe - Ссылка

Nachdem ich das gesagt habe, poste ich meinen Code unten, weil er funktioniert: -

MainActivity.Java

%Vor%

SecondActivity.java

%Vor%

AndroidManifext.xml

%Vor%

activity_main.xml

%Vor%

zweite.xml

%Vor%     
Rahul Gupta 30.11.2013, 18:14
quelle
7

Wenn Sie einen ähnlichen Fehler wie

erhalten %Vor%

oder

%Vor%

Sie müssen wahrscheinlich Android: Wert auf den vollständigen Pfad ändern. Also statt

%Vor%

tue

%Vor%     
Kalel Wade 11.04.2014 15:58
quelle
4

Sie können Metadaten im Manifest hinzufügen, um das JellyBean OS zu unterstützen.

%Vor%     
fchristysen 21.09.2015 06:17
quelle
2

Welche API-Version verwenden Sie? Meiner Erfahrung nach ist es für ältere Versionen notwendig, das up button -Ereignis selbst zu handhaben, während es bei späteren Versionen für Sie erledigt ist.

Ich habe nicht untersucht, welche genaue Version dies ändert, aber ich weiß, dass die API 13 sie nicht für Sie behandelt, während API 16 das tut .

    
just me 30.11.2013 18:07
quelle

Tags und Links