エンジニア男

勉強したことの忘備録としてつらつら書いていきます。

【Android】DataBindingの使い方

DataBindingの使い方のメモ。

 

・公式ドキュメント

https://codelabs.developers.google.com/codelabs/kotlin-android-training-data-binding-basics/index.html?index=..%2F..android-kotlin-fundamentals#1

 

使用手順① : データバインディングを有効にする。

1, build.gradle(Module: app) ファイルを開く

2, androidセクション内で、dataBindingセクションを追加し、enabledをtrueにする。

android {
~~~ 各種設定 ~~~

dataBinding {
enabled = true
}
}

3, 上記の追加が終わったら、プロジェクトの同期を行う。

 

 

使用手順② : データバインディングを使用できるように、レイアウトファイルを変更する。

1, activity_main.xmlファイルを開き、最も外側のタグとして、<layout></layout>タグを追加する。またその際に、名前空間宣言を<layout></layout>タグに張り付ける。

<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:tools=""http://schemas.android.com/tools
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
~~~~
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

 

 

使用手順③ :  MainActivityで、バインディングオブジェクトを作成する。

 

1, MainActivity.ktファイルを開きます。

 

2, トップレベルで、バインディングオブジェクトの変数を作成する。この変数は慣習的にbindingとする。

 

3, onCreate()メソッド内のsetContentView()を処理を置き換える。

 

4, バインディングオブジェクトを使用して、findViewById()を置き換える。

import androidx.databinding.DataBindingUtil

private lateinit var binding: ActivityMainBinding

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

binding.button.setOnClickListener {
// 処理
}
}

}

 

 

※DataBindingを使用してデータ表示を行う方法は後日記述。