Im Folgenden sind die 3 Java-Klassen, die ich für meine Android-Anwendungsentwicklung verwende. Ich möchte die Student-Daten (Name und Telefonnummer) von der AddActivity hinzufügen, die auf der MainActivity-Seite gespeichert wird, nachdem Sie auf "Add" geklickt haben. Ich habe darüber recherchiert und versucht, ein Array zu verwenden. Aber ich bin ziemlich verwirrt darüber, wie die Logik sein muss, damit der Code die in AddActivity eingegebenen Daten in die MainActivity-Seite sendet. Kann jemand mir eine Anleitung geben, wie man das ausarbeitet und würde wirklich dankbar sein, wenn Sie mir einen anderen Weg zeigen könnten, eher wie ich es versuche. Ich möchte, dass die Daten in einem ListView-Format in der MainActivity nach jedem "Add" gespeichert werden, auf das ich in der AddActivity-Seite geklickt habe. Ich hoffe, dass mir jemand dabei helfen kann. Danke.
HauptAktivität.java - Ссылка
%Vor%HinzufügenAktivität.java - Ссылка
%Vor%Student.java - Ссылка
%Vor%[1]: [Bild der Hauptaktivitätsseite] Ссылка
[2]: [Bild der Aktivitätsseite hinzufügen] Ссылка
Wie oben erwähnt, wäre die korrekte Methode die Methode startActivityForResult
. Überprüfen Sie dies .
Und wie man das macht, verdammt einfach! Ändern Sie Ihren Code:
%Vor%und in derselben Aktivität (MainActivity) auf das Ergebnis hören Außerdem würde ich empfehlen, die parceler.org lib zum Senden von Objekten zu verwenden.
%Vor%Und in Ihrer AddActivity, wenn Sie hinzufügen, tun Sie dies einfach.
%Vor%Das sollte funktionieren! Prost!
Verwenden Sie StartActivityForResult für AddActivity und geben Sie ein Objekt von hier zurück und verwenden Sie es in MainActivity. Zum Beispiel siehe hier
Da Sie die Daten in einer Datei speichern, sollte die Aktivität zum Hinzufügen nur die Daten in die Datei schreiben. Dann sollte die Hauptaktivität immer die Datei lesen, um die Liste zu aktualisieren.
Ich würde vorschlagen, eine statische Klasse zu verwenden, wenn Sie keine Datenbank verwenden möchten. Oder wenn Sie eine Datei verwenden sollten, ist es sehr einfach, in eine Datei zu schreiben, wenn Sie in der nächsten Aktivität hinzufügen und lesen.
Erstellen Sie einfach eine statische Klasse wie diese.
%Vor%oder mit einer Datei:
%Vor%Rufen Sie einfach den Schüler hinzufügen und die Schüler in der richtigen Klasse wie folgt.
%Vor%oder
%Vor%Ich hoffe, es hilft. In Ihrem onclick Listener:
%Vor%und ich kann nicht sehen, wo Sie die Liste abrufen. aber benutze einfach die getStudents der Klasse.
in der ersten Aktivität,
%Vor%in Ihrer zweiten Aktivität, wenn Sie fertig sind, Mach dein Zeug, was du willst in der zweiten Aktivität. und übergebe es an mainActivity
%Vor%WENN SIE FRAGMENT VERWENDEN
wenn Sie startActivityResult () in Fragment bedeutet,
Ihr Fragment mainActivity muss super () in
zurückgeben %Vor%Sie können startActivityForResult für dasselbe verwenden. Wenn Sie die Antwort noch nicht gefunden haben, lassen Sie es mich bitte wissen. Ich werde dir den Code zur Verfügung stellen.
Viele der obigen Antworten haben diese Sache bereits sehr gut definiert.
Hier geht es um die Kommunikation zwischen Aktivitäten. Sie können Event Bus verwenden, um dies zu realisieren. Ссылка
Dann 1. Fügen Sie dem build.grade der App eine Event-Bus-Abhängigkeit hinzu.
%Vor%Registrieren Sie die Registrierung in der MainActivity.java
und heben Sie die Registrierung auf@Override protected void onStart () { super.onStart (); EventBus.getDefault (). Register (this); }
@Override protected void onStop () { super.onStop (); EventBus.getDefault (). Unregister (this); }
3.Post-Ereignis in der AddActivity.java
%Vor%4.Implementierung der Ereignisbehandlungsmethode in MainActivity
%Vor% Um die Antwort von MadScientist ein wenig zu erweitern, benötigt ListView Adapter, um die Daten in der Ansicht zu setzen. Sie müssen einen ArrayAdapter für Ihre Listenansicht definieren, mit der Sie kommunizieren können. Dies muss in Ihre MainActivity
gehen und wird in der Methode onCreate
initialisiert. Angenommen, Sie möchten beide Arten von Informationen anzeigen, müssen Sie Ihren Adapter mit dem integrierten Layout erstellen, um zwei Elemente über android.R.layout.simple_list_item_2
anzuzeigen. Wenn Sie jedoch ein eigenes Layout erstellen möchten, können Sie nachsehen, wie Sie das tun hier .
Rufen Sie die startActivityForResult(intent, 123)
in Ihrem Listener auf, um die neue Aktivität zu starten. Wenn Sie Ihre Daten eingegeben haben, fügen Sie Ihre Artikel zur Absicht hinzu und rufen Sie finish()
in Ihrem AddActivity
auf. Überschreibe onActivityResult
in deinem MainActivity
, um die Elemente aus deiner Absicht zu entfernen und sie zu deiner Liste hinzuzufügen. Abschließend benachrichtigen Sie den Adapter über adapter.notifyDataSetChanged()
Tags und Links java arrays android listview android-studio