Dies ist eine alte Version des Dokuments!
Android
Diese Seite soll eine Sammlung von Tipps und Tricks zur Android-Entwicklung werden. Im Grund genommen ist sie mein Notizblock für Kleinigkeiten, die mir im Laufe der Zeit aufgefallen sind.
Allgemein
- Vom
onClick
Attribut in den XML Layout Files kann man nur abraten. Es ist eine bessere Lösung in deronCreate()
einfach für die Buttons entsprechendeonClickListener
zu definieren.
Daten
- Um Daten für Activities (und Fragments) bereitzustellen, die nicht als Ressource registriert sind, eignen sich am besten Loader ggf. in Kombination mit Adaptern.
- „Because
onSaveInstanceState()
is not guaranteed to be called, you should use it only to record the transient state of the activity (the state of the UI)—you should never use it to store persistent data. Instead, you should useonPause()
to store persistent data (such as data that should be saved to a database) when the user leaves the activity.“ [Quelle: Android Dokumentation] onRestoreInstanceState()
wird nachonCreate()
aufgerufen, wenn die Activity beendet und wieder gestartet wurde, so dassonSaveInstanceState()
den Zustand gespeichert hat.- Daten eines ContentProvider können über
ContentResolver.query()
oderActivity.managedQuery()
abgefragt werden. Der Unterschied liegt darin, dass letztere dafür sorgt, dass die Activity sich um den Cursor mit dem Ergebnis kümmert und ihn bspw. wiederherstellt, wenn die Activity neu gestartet wird.
Fragments
- Referenz: Fragments
- In XML Layout-Files sollte man
<fragment />
nur benutzen, wenn man nicht plant das Fragment zu ersetzen. - Sollen Fragments ausgetauscht werden, sollte man dafür im Layout ein
<FrameLayout />
vorsehen und dieses in deronCreate()
der Activity per Transaction durch das Start-Fragment ersetzen.
Orientierung
- Man kann einen Ordner
layout-land/
in den Resources anlegen, um spezielle Layouts für Landscape-Orientierung der Anwendung zu definieren. - Wenn das Gerät gedreht wird, wird
onConfigurationChanged
aufgerufen und die Activity neu erzeugt. In diesem Fall erhält dieonCreate()
ein Bundle übergeben mit Informationen über den wiederherzustellenden Zustand.