Tag Archives: android

SQLite in Android und in iOS

Published by:

BoGo nun für Android:

In iOS lässt sich eine SQLite-Datenbank sehr bequem einbinden. Komischerweise wird bei Android in den im Netz zu findenden Tutorials davon ausgegangen, dass man eine Datenbank erstellt. Laut http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ muss die Datenbank auch noch mit eigenen androidspezifischen Feldern versehen werden.

Für die Arbeit mit SQLITE habe ich übrigens MesaSQLite für 20$ gekauft, es tut seinen Dienst, kein Problem.

Android – Datum

Published by:

Das Datum liegt in einem ISO-Format vor: yyyy-MM-dd’T’HH:mm:ssZ. Ein lesbares deutsches Datumsformat soll angezeigt werden. Man muss 2x mit SimpleDateFormat arbeiten: Im ersten Schritt ein Datumsobjekt erzeugen mittels “parse”, im zweiten Schritt dieses dann neu formatieren mittels “format”. “test” ist im folgenden Codeschnipsel der Datumsstring:

SimpleDateFormat df1 = new SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ssZ”);
df1.setDateFormatSymbols(DateFormatSymbols.getInstance(Locale.GERMAN));
SimpleDateFormat df2 = new SimpleDateFormat(“dd. MMMM yyyy”);
datum=df2.format(df1.parse(test));

Das Datum in einem Textview darzustellen ist wiederum einfach:

TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText(datum);

Außerdem sollte das Datum auf einem weiteren Screen erscheinen:

button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,folgeseite.class);
intent.putExtra(“headl”, datum);

startActivity(intent);
}
});

Auf diesem Screen wird das Datum so ausgelesen und angezeigt:
Bundle extras1;
extras1 = getIntent().getExtras();
headline.setText(extras1.getString(“headl”));

Android – Bilder verwenden

Published by:

Nachdem ich an sich schon den Code hatte, um Bilder via http einzubinden, also eine Bitmap zu erzeugen, ging es nun darum Bilder aus dem Ordner drawable in der Listenansicht anzuzeigen.

Dies bedeutet einen SimpleAdapter mit Bezug auf eine Liste zu verwenden, in der die Listenelemente enthalten sind. Mit R.id.thumb wird quasi auf den Platzhalter für das Bild in der XML-Datei für das Layout verwiesen (1).

Die Liste ist aus folgenden Elementen aufgebaut:

liste = new ArrayList"kleiner"HashMap"kleiner"String,Object"größer""größer">();

Ein Element kann der Liste so hinzugefügt werden (2):
temp.put("image",myImage);
liste.add(temp);

Das ist auch kein Problem. Doch was schreibt man nur für myImage? Der Name des Bildes aus dem drawable-Ordner reicht nicht. Da gibt es dann eine Fehlermeldung, so etwas wie “resolveUri failed on bad bitmap uri”.

myImage braucht eine Referenz, die erst ausgelesen werden muss (3):

final Context mContext = getApplicationContext();
Resources res = mContext.getResources();
Drawable myImage = res.getDrawable(R.drawable.myimage);

So habe ich eine Variable der Art Drawable, die ich wiederum im ViewBinder verwenden kann. Dieser ist notwendig, da der SimpleAdapter aus sich heraus keine Bilder verarbeitet.

Nach der Erzeugung des Adapters braucht man noch (4):

adapter.setViewBinder(new MyViewBinder());

MyViewBinder ist wiederum eine Klasse, in der in der Methode setViewValue folgendes steht:

if (view instanceof ImageView) {
((ImageView) view).setImageDrawable((Drawable) data);
return true;
}

Hier wird also nach Bilddaten im Drawable-Format verlangt.

Insgesamt sind also nach meiner Rechnung vier Teilschritte notwendig, um ein Bild hier zur Anzeige zu bringen.

Android – Development

Published by:

Intensiv den Debugger benutzt, ohne den es teilweise schwierig ist Fehler zu finden. Die Fehlermeldungen selbst, die ausgespuckt werden, sind eher verwirrend.

Erster Fehler war, dass im Manifest fehlte:

uses-permission android:name="android.permission.INTERNET"

.
Erst funktionierte alles, dann wieder nicht, mysteriöse “unable to resolve host”-Meldungen tauchten auf. Da muckte auf einmal der Simulator, den ich dann neugestartet habe.
Der Weg ist steinig.

Bad Behavior has blocked 114 access attempts in the last 7 days.