Android Tutorial

http://www.javacodegeeks.com/2010/10/android-full-application-tutorial.html

How to describe the UI layout: the sample main.xml.

Use of seperate text property file:

android:text=“@string/movies“

Beim Einrichten des Android SDKs mit Eclipse 3.6 folgendes Problem: Beim Angeben des Pfades zum SDK kommt ein Popup, was sofort tot ist. Nicht klickbar. Musste Eclipse abschießen. Lösung: Den Eclipse-eigenen Usage Data Collector deaktivieren. Evtl. hat Eclipse 3.5 das Problem nicht. Oder es ist schlecht für Linux implementiert.

Siehe auch meine früheren Posts: #1, #2

Über die auf den Google Seiten angegebene Eclipse Update URL den SDK und ein paar AVDs runtergeladen.

Das Eclipse-Projekt aus dem  ersten teil des Tutorials runtergeladen. Musste in den Projekteigenschaften noch ein JRE Lib eintragen. Danach eine Run Konfiguration erstellt und gestartet. Alles schick und eigentlich einfach …

<hr/>

Interessant: Google Richtlinien für Ansprechbarkeit (Responsiveness). Am konkreten Beispiel – Benutzung des Android eigenen AsyncTasks:

From the official documentation page, “AsyncTask enables proper and easy use of the UI thread. This class allows to perform background operations and publish results on the UI thread without having to manipulate threads and/or handlers”.

Wie wird der Callback zurück zum Haupt UI Thread realisiert?: Man kann ein Progress Bildchen anzeigen. Man kann in der onPostExecute Methode wieder auf das UI zugreifen und Sachen aktualisieren:


private class PerformMovieSearchTask extends AsyncTask<String, Void, List<Movie>> {

@Override
protected List<Movie> doInBackground(String… params) {
String query = params[0];
return movieSeeker.find(query);
}

@Override
protected void onPostExecute(final List<Movie> result) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (progressDialog!=null) {
progressDialog.dismiss();
progressDialog = null;
}
if (result!=null) {
for (Movie movie : result) {
longToast(movie.name + “ – “ + movie.rating);
}
}
}
});
}

}

Im Beispiel werden die Daten mittels longToast Methode angezeigt.

Desweiteren interessant: Wie kann ich ein Abbrechen im Fortschrittsbalken implementieren?

progressDialog.setOnCancelListener(new CancelTaskOnCancelListener(task));

task.cancel(true);

<hr/>

Data can be transferred among activities using the Intent class.

Gute Idee die Ergebnisse in einer extra ListActivity darzustellen. Entspricht wohl eher der Android denkweise. Ich habe zuerst an eine Liste unterhalb der Eingabefläche gedacht. Aber das ist wahrscheinlich zu sehr Webseitendenkweise. Obwohl es da auch eine Suchergebnisseite gibt …

In order to transfer data among the two activities, we will use one of the overloaded putExtra methods that Intent class offers. The transferable data have to be Serializable and since the ArrayList is by default, we also have to mark our model classes (Movie/Person/Image) with the mark interface. Finally, we use the startActivity method to launch the known new activity.

Später weiter …

Advertisements
Dieser Beitrag wurde unter Uncategorized abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s