Android Kotlin基礎講座 02.4: データバインディングの基礎

まとめ

findViewById()の呼び出しを置き換えるためのデータバインディングの使用手順:

  1. build.gradleファイルのandroidセクションの中でデータバインディングを有効にする:
    dataBinding { enabled = true }
  2. XMLレイアウト中で<layout>をルートビューとして使う。
  3. データバインディング変数を定義する:
    private lateinit var binding: ActivityMainBinding
  4. バインディングオブジェクトをMainActivityの中でsetContentViewと置き換えて作成する:
    binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
  5. findViewById()の呼び出しをバインディングオブジェクトのビューの参照で置き換える。
    例:findViewById<Button>(R.id.done_button) ⇒ binding.doneButton
    (この例ではビューの名前はXMLのビューのIDによって生成されたキャメルケースで記されています)

ビューをデータにバインディングする手順:

  1. データ用のdataクラスを作成する。
  2. <layout>タグの中に<data>ブロックを追加する。
  3. 変数の名前であるnameと、dataクラスを指定するtypeをプロパティにもつ<variable>タグを定義する。
<data>
   <variable
       name="myName"
       type="com.example.android.aboutme.MyName" />
</data>
  1. MainActivityの中でdataクラスのインスタンスが代入される変数を作る。
    例:pricate val myName: MyName = MyName(“Aleks Haecky”)
  1. バインディングオブジェクトを利用してXMLの変数に、先ほど生成した変数を代入する。
    binding.myName = myName
  1. XMLからビューのコンテンツに<data>ブロックで定義した変数を設定する。dataクラスの中のデータにアクセスするにはドット(.)を用いる。
    android:text=”@={myName.name}”

次の講座は 3.1 フラグメントを作成するです。お疲れさまでした。

おすすめ書籍

Kotlinの文法をまず学びたい!という方には以下の書籍がおすすめです。Kotlinは日本語書籍がまだ豊富とは言えない状況ですが、細かく解説されており、Kotlin入門者のかたでもつまずくことなく学習できると思います。

[itemlink post_id=”1743″]

実際にアプリを作りながら覚えていきたい!という方には以下もお勧めです。はじめに上の書籍で文法をさらっと学んでから取り組むのがお勧めです。

[itemlink post_id=”1745″]