2012-12-13

Android Code Snippet: DatePicker

In diesem Post greife ich die Frage eines Android-Entwicklers auf. Er hatte folgendes Anliegen:

[..] Ich habe in meiner App einen DatePicker und möchte das Datum anschließend als String weiterleiten um es in einer externen Datenbank abzuspeichern.
Zur übermittlung der Daten verwende ich ein JSONObjekt. [..]

Ohne viel Vorrede ein Codefragment:

public class MainActivity extends Activity implements OnDateChangedListener {

  Calendar cal;
  DateFormat df;
  DatePicker dp;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    cal = Calendar.getInstance();
    df = new SimpleDateFormat("yyyy-MM-dd");

    dp = (DatePicker) findViewById(R.id.dp);
    dp.init(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),
        cal.get(Calendar.DAY_OF_MONTH), this);
  }

  @Override
  public void onDateChanged(DatePicker view, int year, int monthOfYear,
      int dayOfMonth) {
    cal.set(Calendar.YEAR, year);
    cal.set(Calendar.MONTH, monthOfYear);
    cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);

    JSONObject object = new JSONObject();
    try {
      object.put("datum", df.format(cal.getTime()));
    } catch (JSONException e) {
      e.printStackTrace();
    }
    System.out.println(object);
  }
}
Java2html

DatePicker können über Benutzerinteraktionen berichten. Ein entsprechender Listener wird durch Aufruf der Methode init() gesetzt. Das Zusammenbauen von Jahr, Monat und Tag zu einem String ist dann Handwerk. Viel Spaß beim coden…

2012-12-05

Vergrößerungsfunktion in Android 4.2

Android hat schon recht lange zahlreiche Funktionen eingebaut, die behinderten Menschen die Bedienung ihres Geräts erleichtern.Mit Android 4.2 kam eine Lupe hinzu. Um sie zu nutzen, tippen Sie in den Einstellungen unter Bedienungshilfen der Eintrag Vergrößerungsbewegungen an.

Screenshot: Bedienungshilfen unter Android 4.2

Unschön ist, dass der Infotext zumindest auf meinem Nexus 4 derzeit nicht gescrollt werden kann. Mal sehen, ob das jemals behoben wird…

Screenshot: Einstellungsseite mit langen Hinweistext

Nach dem Einschalten der Funktion wird die Lupe durch schnelles dreimaliges Tippen aktiviert bzw. deaktiviert.

Screenshot: aktivierte Lupe

Gescrollt werden kann durch Wischen mit zwei Fingern. Übrigens sind während der Vergrößerung Benutzereingaben möglich.

Da ich persönlich oft Probleme mit zu kleinen Schriften habe, finde ich dieses Feature sehr, sehr nützlich. Was denken Sie? Schreiben Sie mir…

2012-11-24

2012-11-19

In anderen Sphären…?

…zu Beginn ein paar Unboxing-Fotos…

Verpackung des Nexus 4Rückseite der VerpackungBlick auf das GerätBedienungsanleitungZubehör

Ja, es ist ein Nexus 4. Um genau zu sein, die kleine 8GB-Variante.

Falls Sie mir nun gratulieren möchten, weil ich einer der Glücklichen bin, die trotz Googles Debakel am ersten Verkaufstag zum Zuge gekommen sind… Lassen Sie es. Ich habe dieses Gerät nämlich einem der eBay-Glücksritter abgekauft, für einen ganz sicher deutlich zu hohen Preis. Falls Sie mich nun um meine Dummheit bedauern möchten…
Smiley

Es hat eine Zeit gegeben, zu der Google den Enthusiasten, die sich trotz des überwältigenden Vorsprungs des iPhones zu der Plattform bekannt hatten, dann und wann gedankt haben. Ich erinnere an ein fantastisches Incentive, ein Nexus One, das 2010 an Entwickler von sehr gut bewerteten Apps ausgegeben wurde. Oder, dass man Entwicklern überhaupt die Möglichkeit gegeben hat, Entwicklergeräte zu kaufen. Das wurde irgendwann mit der Begründung eingestellt, man könne sich ja nach Belieben neue Geräte am Markt kaufen. Für Nostalgiker hier die Ankündigung des Nexus One als Developer Phone

Auch der Vorsprung, den man Programmierern ließ, ihre Apps an eine neue Plattform-Revision anzupassen, wurde immer kürzer. Nun, mit Android 4.2 und den neuen Nexus-Geräten, wurden diese fast schon ausgeliefert, als vom SDK noch nichts zu sehen war. Glücklicherweise hat aber ja kaum ein Interessierter ein Nexus 4 oder Nexus 10 bekommen…
Zwinkerndes Smiley

Dass die Goldgräberstimmung und der Individualismus der Anfangszeit (ganz zu Beginn, als Google Play noch Android Market war) der Professionalität einer Multi-Milliarden-Dollar-Industrie gewichen ist, beklage ich nicht. Auch nicht, dass Google von App-Entwicklern mehr Aufwandsbereitschaft fordert. Was ich aber beklage, ist die Abkehr von uns Supportern, die nicht nur die Plattform zu dem gemacht haben, was sie heute ist, sondern die auch heute noch für Android entwickeln, bloggen, schreiben.

Ich bin weit davon entfernt, meine Bücher, meine Artikel, meine Apps oder mich selbst für wichtig zu nehmen. Aber eine aufmunternde Mail von einem der Google-Android-Evangelisten (verdammt, einen muss es doch geben… Zwinkerndes Smiley) würde mich schon freuen.

Wenn man sich ansieht, was Microsoft oder Research in Motion tun…

2012-11-03

Windows 8: Home sweet home

Mit Windows 8 hat man seit vielen Jahren (endlich) wieder die Möglichkeit, neues zu entdecken. Was ich zu Beginn kaum glauben mochte – auch auf großen Displays macht das Spielen mit den Touch-optimierten Apps Spaß, selbst wenn man sie mit der guten alten Maus und Tastatur bedient.
Aber darum soll es in diesem Post gar nicht gehen. Was ich Ihnen zeigen möchte ist, dass unterhalb der hübschen neuen Welt vieles (zum Glück) gleich geblieben ist. Beigebt man sich auf den Desktop, sind die seit Jahren bekannten und bewährten Werkzeuge noch vorhanden.
Screenshot: Systemsteuerung unter Windows 8
In der Systemsteuerung beispielsweise finden Sie unter Verwaltung weiterhin den Eintrag Speicherplatz freigeben. Ein Klick startet die gute alte Datenträgerbereinigung.
Screenshot: Datenträgerbereinigung
Screenshot: Datenträgerbereinigung und Windows-Desktop
Sie hat sogar einige zusätzliche Löschoptionen erhalten. Beispielsweise können Sie nach einer Upgrade-Installation von Windows 8 die Vorherige Windows-Installation(en) entfernen. Auf diese Weise bekommen Sie eine Menge Speicherplatz zurück. Hinter der Option verbirgt sich nämlich das Verzeichnis Windows.old. Bevor Sie ihn entfernen lassen, sollten Sie sicher sein, keine der dort abgelegten Dateien mehr zu benötigen
Bitte beachten sie, dass diese und einige weitere Löschoptionen erst zu sehen sind, nachdem Sie die Schaltfläche Systemdateien bereinigen angeklickt haben.. Über dieses UI-Ärgernis habe ich schon vor geraumer Zeit gebloggt.
Weite Möglichkeiten, Speicherplatz zurück zu erhalten, sind…
  • Temporäre Windows-Installationsdateien
  • Installationsdateien für Windows ESD
  • Protokolldateien für Windows-Upgrades
Mein Tipp ist auch hier, sich vor dem Bereinigen die entsprechenden Beschreibungen genau durchzulesen. Die Texte erscheinen, wenn Sie die Option außerhalb ihrer Checkbox anklicken.
Screenshot: weitere Optionen der Datenträgerbereinigung

2012-11-01

TKWeek 1.5.7

Was tut man an Feiertagen? …seinen Hobbys nachgehen…
Zwinkerndes Smiley
Ich habe Ihnen schon lange nicht mehr von TKWeek erzählt, es wird also höchste Zeit, mal wieder ein paar Screenshots der (heute veröffentlichten) aktuellen Version zu posten. Eine neue Funktion sind so genannte Ruhetage. Derzeit können Sie Tage entsprechend markieren, indem Sie einen Tag antippen und halten, bis sich seine Farbe ändert.
Screenshot: Kalenderansicht mit als Ruhetag markierten Tagen
Noch wird dieses Flag nur in der Tagesübersicht ausgewertet.
Screenshot: Tagesübersicht
Natürlich werden nach und nach andere Module auf Ruhetage zugreifen.

2012-10-29

Installation von Windows 8

Ich weiß nicht, wie es Ihnen damit geht, aber ich habe mich sehr über den Start von Windows 8 gefreut. Frischer Wind tut der Informationstechnologie gut. Und es ist eine wohltuende Ausnahme, dass nicht Apple oder Google im Mittelpunkt stehen. Bevor mich jemand missversteht – das ist weder ironisch noch sarkastisch gemeint. Es war dringend nötig, dass Microsoft zu Innovationskraft zurück findet, denn dieser nervige Krieg zwischen Apple und Android-Land, verbunden mit den unzähligen Schlachten vor den Gerichten dieser Welt, lähmt den Fortschritt. Und schränkt die Wahlmöglichkeit der Konsumenten ein. Wenn Tablets tatsächlich Symbol der “Post-PC-Ära” sind, ist es umso wichtiger, dass es genügend Marktteilnehmer gibt.
Um meinen treuen VAIO auf Windows 8 zu heben, habe ich mir den Upgrade-Assistenten herunter geladen. Er führt folgende Schritte aus:
  • Er überprüft Ihre Hardware, Apps und angeschlossenen Geräte auf ihre Kompatibilität mit Windows 8.
  • Er stellt einen Kompatibilitätsbericht bereit.
  • Er überprüft, ob der PC bestimmte Windows 8-Features unterstützt.
  • Er stellt die Option zum Erwerben, Herunterladen und Installieren von Windows 8 bereit.
Screenshot: Upgrade-Assistent
Screenshot: Kompatibilitäts-Details
Screenshot: Auswahl, was nach Windows 8 übernommen werden soll
Screenshot: Produktempfehlung
Screenshot: Überprüfung des Bestellvorgangs
Screenshot: Beginn der Installation
Screenshot: die obligatorischen Lizenzbedingungen
Screenshot: Was noch zu erledigen ist
Screenshot: Jetzt geht es los
Ich höre jetzt schon die Profis… “So einen Unsinn brauche ich nicht, ich mache das selber”. Natürlich ist die Ausführung des Assistenten nicht nötig. Für mich hat es sich alleine schon deshalb gelohnt, weil ich zu einem fairen Preis und extrem wenig Aufwand an eine Lizenz bekommen bin. Und nach dem Upgrade war der Computer mit allen Programmen, WLAN und UMTS einsatzfähig. Die Alternative, eine System-Builder-Version, ermöglicht nicht in allen Fällen ein Upgrade. Und nach einer Neuinstallation dürfen Sie sich erst mal alle Treiber zusammen suchen.
Selbst wenn Sie eine Neuinstallation machen möchten, rate ich Ihnen, den Upgrade-Assistenten mal auszuprobieren.

2012-10-24

Eclipse-Zeilennummern programmatisch umschalten

Heute habe ich ein Mini-Tutorial für Sie. Wir werden ein kleines Eclipse-Plug-in schreiben, das die Zeilennummern in Editoren ein- und ausschaltet. Wie Sie bereits wissen, geht das auch so. Aber immerhin bekommt das Durchklicken des Assistenten zumindest einen Hauch Praxisbezug.

Ich benutze seit der ersten Version meines Eclipse-Buches Eclipse Classic (früher hieß das Eclipse SDK). Dieses Paket enthält die für die Plug-in-Entwicklung benötigten Zutaten. Wenn Sie zum Beispiel Eclipse IDE for Java Developers verwenden, müssen Sie sich die Bestandteile leider selbst nachinstallieren.

Als Erstes legen wir ein neues Plug-in-Projekt an und hangeln uns durch den Projekt-Assistenten.

Screenshot: erste Seite des Projekt-Assistenten

Screenshot: das Projekt konfigurieren

Screenshot: weitere Angaben zum Projekt

Screenshot: Template "Hello, World Command"

Screenshot: Anlegen des Projekts abschließen

Nach dem Schließen des Assistenten werden Sie unter Umständen mit folgendem Dialog beglückt:

Screenshot: Geeignete Perspektive öffnen?

Sagen Sie einfach Ja.

Das erzeugte Projekt können Sie durch Rechtsklick auf die Projektwurzel im Package Explorer mit Run As – Eclipse Application starten. Haben Sie das Sample Menu entdeckt?

Screenshot: Dialog des Beispiel-Plug-ins

Diesen Dialog werden wir jetzt durch das Umschalten der Zeilennummern ersetzen. Öffnen Sie hierzu bitte die Klasse SampleHandler. Sie enthält unter anderem die Methode execute(). Deren Rumpf tauschen Sie bitte gegen folgendes Codefragment aus:

public Object execute(ExecutionEvent event) throws ExecutionException {
  String lineNumbers = AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER;
  EditorsUI.getPreferenceStore().setValue(lineNumbers, toggle);
  toggle = !toggle;
  return null;
}
Java2html

Eclipse wird an mehreren Stellen schimpfen. Zum einen müssen Sie der Klasse eine statische Variable hinzufügen:

public class SampleHandler extends AbstractHandler {
 
  private static boolean toggle = false;
 
...
Java2html

Um die unbekannten Referenzen aufzulösen, öffnen Sie die Datei plugin.xml im Plug-in Manifest Editor und wechseln dort auf die Registerkarte Dependencies. Klicken Sie auf Add und geben org.eclipse.ui.editors ein.

Screenshot: der Dialog Plug-in Selection

Nach dem Speichern der Datei plugin.xml können Sie in SampleHandler noch die fehlenden Importe korrigieren. Nach dem Starten der Anwendung scheint nach dem Anklicken von Sample Command nichts zu geschehen. Öffnen Sie einfach eine leere Datei aus dem File-Menü.

Natürlich gäbe es an diesem Plug-in einiges zu verbessern. Vielleicht haben Sie ja Lust darauf. Schreiben Sie mir doch, welche Erweiterungen oder Korrekturen Sie vorgenommen haben. Ich freue mich auf Post!

2012-10-21

Visual Studio 2012 Express für Windows Desktop

Kurz vor dem Verkaufsstart von Windows 8 wird viel über dessen Aussehen, den Kachelbildschirm und die neue Art, Apps zu schreiben, diskutiert. Microsoft formt ja ganz bewusst zwei Welten – die neue Kachel-Vollbild-Welt und die klassischen Desktop-Welt. Wie lange letztere noch existieren wird, muss sich zeigen. Ich hoffe, sehr lange, denn meine feste Überzeugung ist, dass es immer Anwendungsgebiete geben wird, die sich nicht mit (den nicht mehr so genannten) Metro-Apps realisieren lassen. In diesem Post werfe ich deshalb einen Blick auf die Installation von Visual Studio 2012 Express für Windows Desktop. Diese Edition bedient die “alte Welt”.
Screenshot: Installation VS2012
Ist Ihnen aufgefallen, dass das Setup über 4 GB auf meinen Rechner schaufeln wird?
Screenshot: Kopiervorgang
Bei dem Installationsassistenten fällt auf, dass er versucht, sich dem Look von Windows 8 (mein Rechner läuft unter Windows 7) anzupassen. Die vier blauen Pünktchen sind übrigens animiert.
Screenshot: Installation abgeschlossen
Der folgende Screenshot zeigt den Splashscreen beim ersten Start.
Screenshot: Splashscreen
Ist Ihnen Nur zu Testzwecken aufgefallen? Dieser Hinweis ist bei mir nach dem Anfordern eines Product Keys verschwunden.
Screenshot: Eingabe des Product Keys
Jetzt ist es mit der Einheitlichkeit des neuen Looks leider vorbei.
Screenshot: Eingabe des Product Keys war erfolgreich
Screenshot: Progress Bar beim erstmaligen Start
Screenshot: Programmstart beendet
Wie wir in einem späteren Post noch sehen werden, findet sich dieser Mix von Oberflächenstilen an verschiedenen Stellen der Entwicklungsumgebung. Möglich ist aber, dass unter Windows 8 dieser Bruch gar nicht zu sehen ist. Dies wäre der Fall, wenn die für die Buttons oder Progress Bars verwendete Bibliothek unter Windows 8 mit einem ähnlichen Look rendert.

2012-10-18

Zeilennummern im Eclipse Editor

Als wir alle noch in BASIC (nein, ich meine nicht VB, sondern CBM BASIC v2 Zwinkerndes Smiley) programmiert haben, waren Zeilennummern allgegenwärtig. Purer Luxus war etwas später der Befehl AUTO, mit dem man Beginn und Schrittweite vorgeben konnte. Der Editor hat dann AUTOmatisch die nächste Zeilennummer vorbereitet. Hm, lang ist’s her…

Java kennt natürlich keine Zeilennummern. Dennoch kann es zur Orientierung hilfreich sein, zu Beginn einer Zeile deren Nummer anzuzeigen. Die Option Show line numbers befindet sich auf der Einstellungsseite Text Editors unter General – Editors – Text Editors.

Einstellungsdialog in Eclipse

Und so sieht das Ganze aus…

Editor mit eingeblendeter Zeilennummer

Update: Thomas Much hat mich daran erinnert, dass man die Zeilennummernanzeige auch über ein Menü steuern kann, das nach einem Klick mit der rechten Maustaste in den linken Randbereich des Editors erscheint.

Editor-Kontextmenü

2012-10-13

JavaScript im Windows-Ökosystem

Zu meiner Rezension des Buches Programming Windows von Charles Petzold habe ich einen sehr interessanten Kommentar erhalten.

> Warum hätte man jemanden auslachen sollen,
> der vor 10 Jahren irgendwas mit Javascript und Windows
> erwähnt hätte?


Zu der Zeit war man in Redmond gerade im C#- und .Net-Himmel. Hier der Link zu einer sehr interessanten Zusammenfassung, insbesondere die Abgrenzung zu Java und Sun ist bemerkenswert. Was ich damit meine ist: vor 10 Jahren hätte es für Microsoft einfach keinen Sinn ergeben, eine nicht im Haus entwickelte Programmiersprache zu promoten. Man darf nicht vergessen, dass es mal Pläne gab, große Teile des Betriebssystems als gemanagten .Net-Code zu realisieren.

> Immerhin ist ja Microsoft dafür bekannt, seine 
> Technologien zu wechseln wie die Unterhosen - der 
> Microsoft-Projekttod ist ja jetzt nichts so seltenes. 
> Im Moment hat's halt grad Silverlight erwischt 
> (ja, ich weiß, offiziell nicht) 

Meine These ist, Microsoft droht, im eigenen Technologiesee zu ertrinken. Ob eine weitere Technologie (Windows RT) da die passende Antwort ist, muss man sehen. Vielleicht weiß ja jemand, der mehr von Microsoft weiß als ich, warum man die Pläne bzgl. einer signifikanten .Net-Ifizierung des Systems aufgegeben hat. Gut, vor 10 Jahren waren Maschinen weitaus weniger leistungsfähig, aber das Problem haben wir ja nichteinmal mehr bei mobilen Geräten. ;-)

> und Javascript - oder zumindest das, was man 
> bei Microsoft dafür hält - ist der neueste 
> Trend. Das kann sich aber auch ziemlich schnell 
> wieder ändern...

Hmm, im Hinblick auf TypeScript glaube ich das nicht.

Auf jeden Fall bedanke ich mich für den klasse Kommentar. So macht Bloggen Spaß...

2012-10-12

Sony Xperia Tablet S (Bildergalerie)

Ich hatte in meinem Post über mein Xperia Tablet versprochen, ein paar Detailaufnahmen zu posten.

Tablet mit Zubehör SGPCV4/H.AE (1/4)Tablet mit Zubehör SGPCV4/H.AE (2/4)Tablet mit Zubehör SGPCV4/H.AE (3/4)Tablet mit Zubehör SGPCV4/H.AE (4/4)oben linksRückseite unten linksoben rechtsunten rechtsunten links
Die Schutzhülle ist natürlich nicht beim Tablet dabei, sondern wird als Zubehör angeboten.