Android チュートリアル Exercise 1

Google Androidアプリ作成のチュートリアルに挑戦してみた。

説明が丁寧かつ詳しかったためExercise1についてはとりあえず問題なく終了。
個人的に大事そうだと思った部分をメモしておく。

XMLレイアウトファイルの記述

  • XMLレイアウトファイル内では@id、@stringのような"@"を使った表記によってresフォルダ以下のリソースを参照可能(R.javaのリソースIDを参照)。
  • AndroidSDK上(android.R)で定義されているIDは、"android:"というプレフィックスを用いてXMLファイル内で参照可能。以下の例の、android:emptyandroid.Rで定義されているID。
 <TextView id="@id/android:empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/no_notes"/>
  • @+idのように"@"のあとに"+"を付けると、もしそのidが存在しなければ自動的に作成することを表す。
<TextView id="@+id/text1" xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

SQLite databaseの利用

Tutorial Exercise1ではSQLite databaseにアクセスする際に、SQLiteDatabaseを直接使っている(DBHelper.java内でSQLiteDatabaseを利用)。
SQLiteDatabaseを直接利用しても問題はないが、SQLite databaseへのアクセスをカプセル化したクラスContentProviderを用いた方法の方がより一般的。実際にSDKのsample/以下にあるNotePadではContentProviderを使っている。

ListViewへのデータバインド

ArrayAdapterは任意のデータ型のList、または配列をListViewにバインドするためのクラス。
ArrayAdapterを用いたデータのバインドは最もシンプルな方法であるが、拡張性が低い。
このため、SimplecursorAdapterとContentProviderを組み合わせたバインド方法が一般的。