[Android & Kotlin] Buttonアプリを作ってみる

KotlinでAndroidの Button アプリを簡単に作ってみました。
findViewByIdの代わりにAndroid Kotlin Extensions プラグインを使っていましたが、現在では ViewBinding が推奨されています。
 
1x1.trans - [Android & Kotlin] Buttonアプリを作ってみる


Android Studio
2024.1.1




Button

 

JavaでのButtonアプリを下のように作成しましたが、
 

test button 00 100x100 - [Android & Kotlin] Buttonアプリを作ってみる
アプリの作り方の基本を習得するために、ボタンを押したら文字が変わるという簡単なアプリを作ってみます。

 
その作り方を参考にKotlinに変えてみます

 

目次
1. Button
2. View Binding
3. Button
 

Button

 

Buttonの基本的な設定はこのようになります、

実際にエミュレータで実行するために、まとめてみます

MainActivity.kt

レイアウトはこのように設定してみます

activity_main.xml

文字列をコードにリテラル(直書き)するのではなく、strings.xml に記述して引用するのがお行儀のよい記述とされています。

直に書いていると後でハマることになります。(と理解してけっこうやっていましたが)最近はうるさくワーニングが出るのでちゃんとしてみました。

strings.xml のファイルは以下の場所にあります。

1x1.trans - [Android & Kotlin] Buttonアプリを作ってみる

strings.xml


以下を参考にエミュレータを作成してください。
 

avd a00 100x100 - [Android & Kotlin] Buttonアプリを作ってみる
アプリが動作するか確認するためには、Android Studio のエミュレータが便利です。エミュレータの設定には Device Manag...

 
デフォルトでエミュレータがAndroid Studio内に表示されますが
設定を変えれば独立させることも可能ではあります。

1x1.trans - [Android & Kotlin] Buttonアプリを作ってみる

これでボタンをタップすると、Hello、Worldと切り替わります

View Binding

 

findViewById を使ってXMLレイアウトファイルからIDを読みだしていたのを
View Binding を使ってビューを操作するコードを簡単に記述できます

Migrate from Kotlin synthetics to Jetpack view binding

View Binding:
セットアップとして、build.gradle ファイルに viewBinding 要素を追加します。

build.gradle

プロジェクトのXML レイアウトファイルが
activity_main.xml
の場合は、そのレイアウトファイル毎にViewBinding Class を作成します。

[package name].databinding.[XMLレイアウトファイル名から]Binding

ActivityMainBindingはXMLファイルの名前(activity_main)を
キャメルケースに変換して、末尾に「Binding」という単語を追加することで生成します。

例)

activity_main.xml >> ActivityMainBinding
sub_layout.xml >> SubLayoutBinding
main.xml >> MainBinding

Viewのidでは

text_view >> textView
textview >> textview
button >> button

Activityでの使用:

サンプルコード

 

View Binding でまとめて記述してみると
 
MainActivity.kt

レイアウトファイル、リソースは同じです 

次にbuild.gradleですが2つあるので注意してください
Module:App の方です
 
build.gradle

android { } の中にbuildFeatures{ } を追加します。

記述後には Sync が必要です(エディタ上部に表示が出ます)
反映に多少時間がかかる場合もあります(MainActivityのエラーの赤線が消えるまで時間がかかる数十秒?)

これで実行してボタンが表示されましたでしょうか

 
ちょっと見栄えをよくしてみます
フォントを大きくしたりレイアウトを変更したり

activity_main.xml

 

これで実行してみると

1x1.trans - [Android & Kotlin] Buttonアプリを作ってみる

 

Kotlinでは生産性が上がるという意見もありますが、どうでしょう。今後のGoogleにおけるJavaの扱いがどうなるか、どうなっても対応できるようにしておいた方がいいのかもしれません
 

Kotlinでは以前は「Kotlin Android Extensions」を使ってコードを簡略化できていましたが非推奨となりました。View Binding が「大概のケース」でfindViewByIdの後継として使えます。例外もあります

 
 

References:
ボタン | Android デベロッパー
Kotlin and Android | Android Developers
Kotlin Programming Language
Kotlin Android Extensions の未来
Use view binding to replace findViewById

シェアする

  • このエントリーをはてなブックマークに追加

フォローする