{the magic lies between the brackets}

Monat: Mai 2013 (Seite 1 von 1)

Android Applikation mit Parametern (putExtra()) via ADB starten

Wer mit Android arbeitet, hat sicher auch mit der ADB, der Android Debug Bridge zu tun gehabt.
Die ADB ist eine Shellumgebung, mit der man Befehle direkt auf dem Smartphone ausführen kann.
Dies ist gerade dann praktisch, wenn man Daten vom Computer auf das Smartphone übertragen will
Dies geht übrigens mit dem Befehl:

 adb push 

Nun wollte ich mit meinem Computer eine von mir gebaute Androidapplikation starten.
Dies geht wie folgt:

1. Startet die Windows Command Line (cmd.exe) und navigiert in euren SDK-Ordner,
bspw. mit

 cd F:/Programmierung/Android/SDK/ 

2. Nun geht navigiert in den Pfad

    plattform-tools

3. Öffnet die adb.exe mit dem Parameter shell

 adb shell 

4. Nun könnt ihr den Befehl, der die Applikation start eingeben:

 am start -n com.meinPaket.meinProjekt/.meineActivity 

Falls ihr via Intent.getExtras() einige „Parameter“ in eurem Programm nutzt, könnt ihr diese mit

 am start -n com.meinPaket.meinProjekt/.meineActivity -e meinKey "meinTextstehthier"

übergeben, mehrere extras einfach mit mehreren -e Parametern durchreichen.

 am start -n com.meinPaket.meinProjekt/.meineActivity -e meinKey "mein Text steht hier" -e meinZweiterKey "hierStehtEinAndererText123456$§!"

Ausgelesen werden diese im Programmcode so:

 Intent intent = getIntent();
String meinKeyText = intent.getStringExtra("meinKey");
String meinZweiterKeyText = intent.getStringExtra("meinZweiterKey");

Eine Auflistung weiterer ADB Befehle findet ihr hier: Android Developer Page

Auflösung unter Windows 7 erzwingen

Vorgehensweise: 

Wechsel in die Systemsteuerung und von dort in die „Anzeige“. Wähle, aus der Liste links, den Reiter „Anzeigeeinstellungen ändern“.

In diesem Menü den Reiter „Erweiterte Einstellungen“ wählen und im nun geöffnet Fenster in die Registerkarte Grafikkarte wechseln.

Hier auf den Button „Alle Modi auflisten“ klicken, hier kann man nun alle Auflösungen wählen. Sollte der Monitor nach einer falschen Einstellung kein Bild mehr anzeigen, kann man entweder 15 Sekunden warten oder die Escape-Taste betätigen.

[C#/.NET] – Liste in mehrere Listen splitten/gruppieren

Mein Problem war es zu Beginn eines früheren Projektes eine List<T> (in meinem Fall List<Reporter>) in mehrere Unterlisten zu sortieren.
Meine Klasse sah grob so aus:

     class Reporter
    {
        public string name;
        public string birthYear;

        public Reporter(string birthYear, string name)
        {
            this.name = name;
            this.birthYear = birthYear;
        }
    }

Meine Liste bestand aus mehreren Reportern und sah so aus:

Birthyear Name

  • 1991 Jon
  • 1992 Dominic
  • 1993 Jack
  • 1994 Hillary
  • 1991 Jackson
  • 1994 Jaqueline

Nun wollte ich die Liste in mehrere Listen splitten und zwar je nach Geburtsjahr:

Birthyear Name


1991 Jon

1991 Jackson


1993 Jack


1992 Dominic


1994 Hillary

1994 Jaqueline


Das Ergebnis erreichte ich relativ einfach mit einem Einzeiler:
Zuerst gruppierte ich die Liste mit einer Lambda-Expression nach dem Geburtsjahr:

 var groups = reporterList.GroupBy(x => x.birthYear); 

Danach wählte ich jede Gruppe aus (Lambda) und konvertierte jedes Element in eine Liste:

 var groups = groups.Select(grp => grp.ToList()); 

Und schlussendlich fügte ich alle Gruppen in eine Liste zusammen:

 var groups = groups.ToList(); 

Ein Einzeiler, der all das macht, ist einfach eine Aneinanderreihung dieser Befehle:

 var groups = reporterList.GroupBy(x => x.birthYear).Select(grp => grp.ToList()).ToList(); 

Und voíla hat man eine Liste aller Gruppen.