Probleme mit Android TabHost Beispiel

8

Ich habe versucht, das "fortgeschrittene" Tabwidget Beispiel von Google zu implementieren. Aber wenn es versucht, tabHost.addTab(spec); aufzurufen, bekomme ich eine Stack-Trace vom Debugger. Entschuldigung, ich habe den Stack-Trace hier nicht, aber ich frage mich, ob andere das gleiche Problem hatten (da dieser Code eine Reihe von Tippfehlern und fehlende Informationen hatte, die mich daran hinderten, sogar zu kompilieren.)

Kann mir jemand auf eine korrigierte / laufende Version dieses Codes hinweisen?

Die aktualisierten Informationen sind:

%Vor%     
KevinDTimm 05.02.2010, 18:26
quelle

4 Antworten

9

Das aktuelle TabHost-Beispiel auf der Android-Entwickler-Website enthält einen Fehler und wird ebenfalls gelöscht einen wichtigen Schritt, der das Ausführen des Beispiels verhindert.

Zunächst einmal: In der onCreate () -Methode, die der HelloTabWidget-Klasse hinzugefügt wird, wird versucht, ein TabHost-Objekt namens mTabHost zu verwenden. Dies ist ungültig, es sollte tabHost sein.

Zweitens: Das Lernprogramm lässt die Details aus, die Sie für das Hinzufügen der einzelnen Aktivitäten zu AndroidManifest.xml benötigen. Ohne diesen Code wird der Code nicht funktionieren und Sie werden jedes Mal, wenn Sie versuchen, auszuführen, "forciert".

    
crv 08.02.2010, 04:44
quelle
12

Ich habe die letzte Stunde oder so durch dieses Tutorial gegangen. Hier sind die Probleme und Korrekturen, die ich behandelt habe:

Schritt 2: Wenn Sie Ihre Aktivitäten beim Erstellen Ihrer Aktivitäten nicht über das Manifest erstellen, müssen Sie sie manuell zum Manifest hinzufügen.

Fügen Sie diese Zeilen zu AndroidManifest.xml hinzu:

%Vor%

Schritt 3: Sie werden lediglich angewiesen, die Datei ic_tab_artists.xml zu erstellen. Sie müssen auch eine für ic_tab_songs.xml und ic_tab_albums.xml erstellen. Sie können die Datei ic_tab_artists.xml einfach duplizieren (oder die Tab-Spezifikationen HelloTabView.java ändern, um die Datei artists.xml für jede Registerkarte zu verwenden).

Schritt 4: Die drittletzte Zeile unter / res / layout / main hat einen Tippfehler (a; statt a:)

%Vor%

Schritt 6: Es gibt einen Tippfehler, der Aufrufe von mTabHost anstelle von tabHost verwendet. Ändern Sie es.

Wie bereits erwähnt, ist die Funktion getIntent () in der letzten Zeile nicht geeignet. Ich rufe nur den Tab an, der auf seiner ID basiert. zB:

%Vor%     
Ted 11.02.2010 05:07
quelle
2

Auch das

android:theme="@android:style/Theme.NoTitleBar"

funktioniert nicht für mich, wenn ich es durch

ersetze

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

es funktioniert gut.

    
Marco Hertwig 21.03.2010 09:41
quelle
1

Das von Ted korrigierte Beispiel funktioniert auch, wenn alle drei Aktivitäten die Zeile nicht enthalten:

%Vor%

Dies ist nützlich, wenn Sie zusätzlich zu den Tab-Labels eine Titelleiste wünschen.

    
Lou 22.04.2010 17:36
quelle

Tags und Links