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:
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:
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.
Targeting der richtigen API-Ebene in den Eigenschaften des Projekt-Build-Ziels wie folgt:
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%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%Sie können Metadaten im Manifest hinzufügen, um das JellyBean OS zu unterstützen.
%Vor%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 .
Tags und Links android android-actionbar