Wie starten Sie in einer Android-Anwendung eine neue Aktivität (GUI), wenn Sie auf eine Schaltfläche in einer anderen Aktivität klicken, und wie übertragen Sie Daten zwischen diesen beiden Aktivitäten?
626
Wie starten Sie in einer Android-Anwendung eine neue Aktivität (GUI), wenn Sie auf eine Schaltfläche in einer anderen Aktivität klicken, und wie übertragen Sie Daten zwischen diesen beiden Aktivitäten?
Einfach.
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value); //Optional parameters
CurrentActivity.this.startActivity(myIntent);
Extras werden auf der anderen Seite abgerufen über:
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it's a string you stored.
}
Vergessen Sie nicht, Ihre neue Aktivität in die Datei AndroidManifest.xml aufzunehmen:
<activity android:label="@string/app_name" android:name="NextActivity"/>
CurrentActivity.this.startActivity(myIntent)
undstartActivity(myIntent)
?Erstellen Sie eine Absicht für eine ViewPerson-Aktivität und übergeben Sie die PersonID (z. B. für eine Datenbanksuche).
In ViewPerson Activity können Sie dann das Bündel zusätzlicher Daten abrufen, sicherstellen, dass es nicht null ist (falls Sie manchmal keine Daten übergeben), und dann die Daten abrufen.
Wenn Sie jetzt Daten zwischen zwei Aktivitäten austauschen müssen, können Sie auch einen globalen Singleton verwenden.
Rufen Sie es dann in einer beliebigen Aktivität auf, indem Sie:
quelle
Aktuelle Antworten sind großartig, aber für Anfänger ist eine umfassendere Antwort erforderlich. Es gibt drei verschiedene Möglichkeiten, um eine neue Aktivität in Android zu starten, und alle verwenden die
Intent
Klasse. Absicht | Android-Entwickler .onClick
Attributs der Schaltfläche. (Anfänger)OnClickListener()
über eine anonyme Klasse. (Mittlere)switch
Anweisung. (Profi)Hier ist die Link zu meinem Beispiel, wenn Sie mitmachen möchten:
1. Verwenden Sie das
onClick
Attribut der Schaltfläche. (Anfänger)Schaltflächen haben ein
onClick
Attribut, das sich in der XML-Datei befindet:In der Java-Klasse:
Vorteil : Einfach im laufenden Betrieb herzustellen, modular und einfach mehrere einzustellen
onClick
s auf die gleiche Absicht .Nachteil : Schwierige Lesbarkeit bei der Überprüfung.
2. Zuweisen eines
OnClickListener()
über eine anonyme Klasse. (Mittlere)Dies ist der Fall, wenn Sie
setOnClickListener()
für jeden einen eigenen Wert festlegenbutton
und jeden überschreibenonClick()
einen eigenen Wert fest mit seiner eigenen Absicht.In der Java-Klasse:
Vorteil : Einfach im laufenden Betrieb herzustellen.
Nachteil : Es wird viele anonyme Klassen geben, die die Lesbarkeit beim Überprüfen erschweren.
3. Aktivitätsweite Schnittstellenmethode mit dem
switch
Anweisung. (Profi)In diesem Fall verwenden Sie eine
switch
Anweisung für Ihre Schaltflächen innerhalb deronClick()
Methode, um alle Schaltflächen der Aktivität zu verwalten.In der Java-Klasse:
Vorteil : Einfache Tastenverwaltung, da alle Tastenabsichten in einer einzigen
onClick()
Methode registriert werdenDen zweiten Teil der Frage, Daten übergeben, finden Sie unter Wie übergebe ich Daten zwischen Aktivitäten in einer Android-Anwendung?
quelle
Wenn der Benutzer auf die Schaltfläche klickt, direkt im XML wie folgt:
Mit dem Attribut
android:onClick
deklarieren wir den Methodennamen, der in der übergeordneten Aktivität vorhanden sein muss. Also muss ich diese Methode in unserer Aktivität so erstellen:quelle
quelle
quelle
Emmanuel,
Ich denke, die zusätzlichen Informationen sollten vor dem Start der Aktivität eingegeben werden, da die Daten sonst noch nicht verfügbar sind, wenn Sie mit der onCreate-Methode von NextActivity darauf zugreifen.
quelle
Versuchen Sie in der Sendeaktivität den folgenden Code
Versuchen Sie in der empfangenden Aktivität den folgenden Code:
Fügen Sie dann einfach den folgenden Code zur Datei AndroidManifest.xml hinzu
quelle
quelle
Versuchen Sie diese einfache Methode.
quelle
Sie können diesen Code ausprobieren:
quelle
Der Weg, um neue Aktivitäten zu starten, besteht darin, eine Absicht zu senden. Es gibt eine bestimmte Art von Absicht, mit der Sie Daten von einer Aktivität an eine andere übergeben können. Meine Empfehlung ist, dass Sie sich die Android-Entwicklerdokumente ansehen, die sich auf Absichten beziehen . Es ist eine Fülle von Informationen zu diesem Thema und hat auch Beispiele.
quelle
Kotlin
Erste Aktivität
Zweite Aktivität
Vorschlag
Legen Sie die Schlüssel immer in einer konstanten Datei ab, um sie besser verwalten zu können.
quelle
Das Starten einer Aktivität von einer anderen Aktivität aus ist unter Android-Anwendungen ein sehr häufiges Szenario.
Um eine Aktivität zu starten, benötigen Sie ein Intent- Objekt.
Wie erstelle ich Absichtsobjekte?
Ein Intent-Objekt nimmt in seinem Konstruktor zwei Parameter an
Wenn Sie beispielsweise zwei Aktivitäten haben, sagen Sie
HomeActivity
undDetailActivity
undDetailActivity
vonHomeActivity
(HomeActivity -> DetailActivity) ausgehen möchten.Hier ist das Code-Snippet, das zeigt, wie DetailActivity gestartet wird
Und du bist fertig.
quelle
Starten Sie eine andere Aktivität von dieser Aktivität aus und Sie können Parameter auch über Bundle Object übergeben.
Daten in einer anderen Aktivität abrufen (YourActivity)
quelle
Implementieren Sie die View.OnClickListener-Schnittstelle und überschreiben Sie die onClick-Methode.
quelle
Es wurden zwar bereits richtige Antworten gegeben, aber ich bin hier, um die Antwort in der Sprache Kotlin zu suchen. Diese Frage ist nicht sprachspezifisch, daher füge ich den Code hinzu, um diese Aufgabe in Kotlin-Sprache auszuführen.
Hier erfahren Sie, wie Sie dies in Kotlin für Andorid tun
quelle
Die einfachste Möglichkeit, Aktivitäten beim Klicken auf eine Schaltfläche zu öffnen, ist:
onclick
Funktion einen Namen .MainActivity.java
SecondActivity.java
AndroidManifest.xml (Fügen Sie einfach diesen Codeblock zum vorhandenen hinzu)
quelle
Nehmen Sie zuerst Button in XML.
Listener der Schaltfläche machen.
quelle
Wenn auf die Schaltfläche geklickt wird:
Um die zusätzlichen Daten zu erhalten von
NextActivity.class
:quelle
Schreiben Sie den Code in Ihrer ersten Aktivität.
In secondActivity.class
quelle
Platzieren Sie das Schaltflächen-Widget wie unten in XML
Nach dieser Initialisierung und Bearbeitung des Klick-Listeners in Aktivität wie unten.
In der Methode "Aktivität beim Erstellen":
quelle