Starten einer Aktivität mit einem Parameter
Ich bin sehr neu in der Android-Entwicklung.
Ich möchte eine Aktivität erstellen und starten, um Informationen über ein Spiel anzuzeigen. Ich zeigen, dass Informationen, die ich brauche eine gameId.
Wie kann ich diese Spiel-ID an die Aktivität übergeben? Die Spiel-ID ist absolut notwendig, so dass ich die Aktivität nicht erstellen oder starten möchte, wenn sie die ID nicht hat.
Es ist, als ob die Aktivität nur einen Konstruktor mit einem Parameter hat.
Wie kann ich das machen?
Danke!
279
3
Fügen Sie einen
int
, der Ihre ID ist, in den neuenIntent
ein.Dann nimm die ID in deine neue
Activity
:Fügen Sie einfach zusätzliche Daten zu dem Intent hinzu, mit dem Sie Ihre Aktivität aufrufen.
In der Aufrufer-Aktivität:
Innerhalb der onCreate() der Aktivität rufen Sie auf:
Bearbeiten : Ups, Charlie Sheen war schneller.
Die vorhandenen Antworten (Übergabe der Daten im
Intent
, der anstartActivity()
übergeben wird) zeigen den normalen Weg zur Lösung dieses Problems. Es gibt eine andere Lösung, die in dem seltsamen Fall verwendet werden kann, in dem Sie eine Aktivität erstellen, die von einer anderen Anwendung gestartet wird (z.B. eine der Bearbeitungsaktivitäten in einem Tasker Plugin) und daher denIntent
, der dieActivity
startet, nicht kontrolliert.Sie können eine Basisklasse
Activity
erstellen, die einen Konstruktor mit einem Parameter hat, dann eine abgeleitete Klasse, die einen Standardkonstruktor hat, der den Basisklassenkonstruktor mit einem Wert aufruft, wie folgt:Wenn Sie den Parameter generieren müssen, der an den Konstruktor der Basisklasse übergeben werden soll, ersetzen Sie einfach den fest kodierten Wert durch einen Funktionsaufruf, der den richtigen Wert zurückgibt, der übergeben werden soll.