【Android Studio】View Binding の使い方(Java & Kotlin対応)

この記事では findViewById を使わずに TextView や Button などにアクセスできるようになる View Binding(ビューバインディング)の使い方を紹介します。
findViewById メソッドを使う場合
[Java] TextView textView = findViewById(R.id.textView);
[Kotlin] val textView: TextView = findViewById(R.id.textView);
のように書きますが、無効な ID や間違った型を指定してしまうリスクがあります。
これを防ぐことが出来るのが View Binding です。
簡単に実装できてより安全なコードを書くことができるので、ぜひお試しください。
開発環境
Android Studio | Giraffe | 2022.3.1 |
---|---|
Android Emulator | Nexus 4 (API 34) |
minSdk | 19 |
compileSdk | 33 |
プロジェクトについて
Sample という名前でプロジェクトを作成しています。
使用するファイル
- MainActivity.java / MainActivity.kt
- activity_main.xml
activity_main.xml に TextView と Button を用意して、ボタンを押したら TextView の文字列を変更するコードを書いていきます。

View Binding の使い方
Step 1:View Binding を有効にする
Android Studio 画面左側のプロジェクト構造から Gradle Scripts → build.gradle.kts(Module :app) を開きます。
* Flamingo 以前の場合は build.gradle(Module :app) となっています。

11~13行目を追加します。
画面右上に表示される Sync Now をクリックします。

Step 2:レイアウトの用意
activity_main.xml を開いて TextView と Button を用意します。
11・19 行目のように id を付けることがポイントです。
Step 3:ビューをセットする
Javaのコード
MainActivity.java を開いて、11・16・17行目のコードを追加・変更します。
Kotlin のコード
MainActivity.kt を開いて、9・13・14行目のコードを追加・変更します。
解説
バインディングクラス名は XML ファイル名をキャメル型にして Binding を付けます。
例えば
activity_main.xml → ActivityMain + Binding → ActivityMainBinding
user_login_view.xml → UserLoginView + Binding → UserLoginViewBinding
となります。
Step 4:ビューを参照する
Button をタップしたら TextView の文字列を変えるコードを書きます。
Java のコード
11〜16行目を追加します。
Kotlin のコード
10〜12行目を追加します。
解説
Button 要素の id 属性は “@+id/btn” としたので
binding.btn.
で参照することができます。
TextView 要素の id 属性は “@+id/message” としたので
binding.message.
となります。
完成
アプリを実行してコードが動くことを確認しましょう。
