Erfahren Sie, wie Sie ganz einfach `float`- und `boolean`-Werte von Ihrer Android-`Activity` zu einer benutzerdefinierten `View`-Klasse mittels einfacher Setter-Methoden übertragen.
---
Dieses Video basiert auf der Frage https://stackoverflow.com/q/62322971/ gestellt von dem Nutzer 'AndBraz' ( https://stackoverflow.com/u/13704104/ ) sowie auf der Antwort https://stackoverflow.com/a/62323677/ bereitgestellt von dem Nutzer 'Vivek Singh' ( https://stackoverflow.com/u/9636642/ ) auf der Website 'Stack Overflow'. Vielen Dank an diese großartigen Nutzer und die Stackexchange-Community für ihre Beiträge.
Besuchen Sie diese Links, um den Originalinhalt und weitere Details zu sehen, z. B. alternative Lösungen, aktuelle Entwicklungen zum Thema, Kommentare, Versionsverlauf usw. Der ursprüngliche Titel der Frage lautete beispielsweise: How to transfer data between an Activity and a View class?
Außerdem steht der Inhalt (außer Musik) unter der Lizenz CC BY-SA https://meta.stackexchange.com/help/l...
Der ursprüngliche Fragenbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ), und der ursprüngliche Antwortbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ).
Falls Ihnen irgendetwas auffällt oder Unstimmigkeiten bestehen, schreiben Sie mir bitte an vlogize [AT] gmail [DOT] com.
---
Wie man Daten zwischen einer Activity und einer View-Klasse in Android überträgt
Die Übertragung von Daten zwischen verschiedenen Komponenten einer Android-Anwendung kann manchmal herausfordernd sein, insbesondere für Einsteiger. Als Java-Entwickler, der sich mit Android beschäftigt, fragen Sie sich vielleicht, wie man Werte zwischen Ihrer Activity und einer benutzerdefinierten View-Klasse teilen kann. Nehmen wir zum Beispiel das Szenario, dass Sie zwei float-Werte und einen boolean-Wert von der MainActivity-Klasse an eine Klasse namens MyCanvas, die von View erbt, senden möchten. In diesem Beitrag werden wir eine klare Lösung schrittweise erläutern, um dies effektiv mit Setter-Methoden zu erreichen.
Das Problem verstehen
Sie haben eine MainActivity, in der Sie Berechnungen basierend auf Benutzereingaben aus EditText-Feldern durchführen. Die Ergebnisse, xResult und yResult, müssen mit der MyCanvas-Klasse geteilt werden, um sie dort für die Darstellung zu verwenden. Zusätzlich gibt es einen boolean-Wert namens buttonState, den Sie ebenfalls an MyCanvas übermitteln wollen. Übliche Methoden wie Intent und Bundle sind hier nicht effizient, da sie normalerweise zum Starten von Activities und Übergeben von Daten zwischen diesen benutzt werden.
Um dieses Problem zu lösen, können Sie Setter-Methoden in Ihrer MyCanvas-Klasse verwenden, die es erlauben, Daten direkt zu übergeben.
Die Lösung implementieren
Schritt 1: Setter-Methoden in der MyCanvas-Klasse erstellen
Zuerst erstellen Sie Setter-Methoden in Ihrer MyCanvas-Klasse. Diese Methoden erlauben es externen Klassen (wie der MainActivity), die Werte von cx, cy und buttonState2 zu setzen. So können Sie das umsetzen:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Schritt 2: MainActivity-Klasse aktualisieren
Anschließend modifizieren Sie Ihre MainActivity-Klasse, um die neu erstellten Setter-Methoden zu verwenden. Nachdem Sie Ihre Berechnungen durchgeführt haben (die Logik befindet sich bereits im Button-Click-Listener), rufen Sie diese Methoden auf, um die Werte an Ihre MyCanvas-Instanz zu übergeben.
So kann das umgesetzt werden:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Wichtige Erkenntnisse
Setter-Methoden: Das Erstellen von Setter-Methoden in Ihrer View-Klasse ist ein direkter Weg, um Daten zu übertragen. Diese Methode vermeidet Komplikationen mit Intents oder Bundles, wenn Sie nur innerhalb des gleichen Activity-Kontexts Informationen austauschen möchten.
Klare Struktur: Stellen Sie sicher, dass Ihre Hauptlogik klar und organisiert bleibt, indem Sie die Verantwortung klar aufteilen. Die MainActivity übernimmt die Benutzer-Eingaben und Berechnungen, während sich die MyCanvas-Klasse ausschließlich um die Darstellung kümmert.
Wenn Sie diesen Schritten folgen, wird es Ihnen leicht fallen, Daten zwischen einer Activity und einer View-Klasse in Android zu übertragen, was eine reibungslosere Funktionalität Ihrer Anwendungen ermöglicht.
Информация по комментариям в разработке