🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Android: Übergabe von Parametern

Posted on 2. Oktober 20162. Mai 2023 by Stefan Draeger

In diesem kurzen Tutorial möchte ich gerne erklären wie ich Transferobjekte von einer Intent zur anderen übergebe.

  • Einbinden der Bibliothek GSON
  • Eine JUnit Testklasse für GSON
  • Übergabe von Parametern einer Intent
  • Auslesen der Parameter

Einbinden der Bibliothek GSON

Bei dieser Übergabe hilft mir die Bibliothek GSON von Google, welche in der Datei „build.gradle (Module : app)  folgendermaßen eingebunden wird:

dependencies {
    ...
    compile group: 'com.google.code.gson', name: 'gson', version: '2.7'
}

Ggf. können in dem Abschnitt „dependencies“ weitere Bibliotheken oder Pfade stehen, welche natürlich nicht überschrieben werden sollten.
Wenn der Pfad zur Bibliothek hinzugefügt und die Datei gespeichert wurde, muss eine Syncronisation durchgeführt werden. Dazu klicken Sie auf den Hyperlink „Sync now“ oben links.
Es wird nun die Bibliothek aus dem Internet geladen und bereitgestellt, dieses dauert je nach Verbindung und Geschwindigkeit des Computers.

Eine JUnit Testklasse für GSON

Um zu Testen das mein Transferobjekt, in diesem Fall die Klasse „RechenknirpsTO“ nach JSON und von JSON wieder korrekt in die Klasse gewandelt wird habe ich folgende JUnit Klasse geschrieben.

public class RechenknirpsTOTest {

    private RechenknirpsTO originalRechenknirpsTO;

    @Before
    public void beforeTest(){
        originalRechenknirpsTO = new RechenknirpsTO();
        originalRechenknirpsTO.setName("Stefan");
        originalRechenknirpsTO.setDiv(false);
        originalRechenknirpsTO.setMal(false);
        originalRechenknirpsTO.setMinus(true);
        originalRechenknirpsTO.setPlus(true);
        originalRechenknirpsTO.setZahlenraum(100);
    }

    @Test
    public void shouldBeTheSame(){
        Gson gson = new Gson(); //erstellen / instanzieren des Objektes Gson
        String value = gson.toJson(originalRechenknirpsTO); // Umwandeln des Transferobjektes in ein JSON

        RechenknirpsTO rechenknirpsTO = gson.fromJson(value,RechenknirpsTO.class); // Umwandeln des JSON in das Transferobjekt
        assertEquals(rechenknirpsTO,originalRechenknirpsTO); // prüfen ob beide Objekte gleich sind
    }
}

Übergabe von Parametern einer Intent

Eine Intent kann über die Methode „getExtras“ verschiedene Parameter bekommen, jedoch ist leider nicht die Übergabe von Objekten vorgesehen (vielleicht kommt das ja in einer späteren Version). Daher müssen wir nun über den Weg des JSON gehen:

Intent intent = new Intent(getApplicationContext(), GameActivity.class);
Gson gson = new Gson(); // erstellen / instanzieren des Gson Objektes
String value = gson.toJson(rechenknirpsTO); // umwandlung vom Transferobjekt in ein JSON
intent.putExtra("rechenknirpsTO",value); // setzen des JSON mit dem Key "rechenknirpsTO"
startActivityForResult(intent, 0); //starten der Intent

Auslesen der Parameter

Um nun in der neuen Activity das Transferobjekt zu bekommen, muss man sich in der Activitya die Intent holen und dort das Bundle laden, dieses geschieht mit der Methode „getExtras()“.
Dieses Bundle Objekt enthält nun das Transferobjekt welches mit dem Key „rechenknirpsTO“ abgelegt wurde. Nun kann wiederum mithilfe der Gson Bibliothek das Transferobjekt aus dem JSON generiert werden (siehe JUnit Test).

In meiner Activity sieht das dann folgendermaßen aus:

Intent intent = getIntent(); // holen der Intent in einer Activity
Bundle bundle = intent.getExtras(); // das Bundle Objekt holen
Object o = bundle.get("rechenknirpsTO"); // aus dem Bundle Objekt der Wert zum Key "rechenknirpsTO" holen
Gson gson = new Gson(); // erstellen / instanzieren des Gson Objektes
RechenknirpsTO rechenknirpsTO = gson.fromJson(o.toString(),RechenknirpsTO.class); // umwandeln des JSON in das Transferobjekt mit Gson

Damit habe ich nun das Transferobjekt von einer in die andere Activity transferiert ohne das eine statische Klasse oder andere Hilfsmittel verwendet werden musste.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb