【Android Studio】ボタンのクリックイベントの書き方 – Kotlin編
この記事では、ボタンをタップしたら処理を実行する「クリックイベントの書き方」を紹介します。
- シンプルな書き方
- インタフェースを実装する書き方
Javaのコードはこちら
準備
開発環境
Android Studio | Giraffe | 2022.3.1 |
---|---|
Android Emulator | Nexus 4(API 34) |
compileSdk / targetSdk | 33 |
minSdk | 19 |
サンプルアプリの用意
Sample という名前のプロジェクトを作成して、以下のファイルがあることを前提に進めていきます。
- activity_main.xml
- MainActivity.kt
activity_main.xml にはボタンを3つ用意して、それぞれのボタンをタップしたら Snackbar を表示するコードを書いていきます。
【アプリ画面】
方法1:シンプルな書き方
書き方はとても簡単で次のように書きます。
ボタン.setOnClickListener {
// 実行するコード
}
ボタンが1つの場合
まずは「ボタン1」にクリックイベントを実装してみます。
MainActivity.kt に6~8行目のコードを追加・変更します。
アプリを実行してみましょう。
「ボタン1」をタップすると画面下部に Snackbar が表示されます。
ボタンが複数ある場合
ボタンが複数ある場合も同じように書きます。
アプリを実行して、タップしたボタンによってメッセージが変わっているか確認しましょう。
方法2:インタフェースを実装する書き方
次は View.OnClickListener インタフェースを実装する方法です。
複数のボタンがあって実行する処理が似ている時に便利な書き方です。
ボタンが1つの場合
まずは「ボタン1」にクリックイベントを実装してみます。
MainActivity.kt に1・6・9~11行目のコードを追加・変更します。
ここでは
- インタフェースを実装(1行目)
- ボタンにクリックリスナーをセット(6行目)
- onClick メソッドを用意(9~11行目)
を行なっています。
View.OnClickListener インタフェースを実装したら、onClick メソッドを追加する必要があります。
またボタンとクリックリスナーを紐づけるための6行目のコードを忘れないようにしましょう。
アプリを実行してみましょう。
「ボタン1」をタップすると画面下部に Snackbar が表示されます。
ボタンが複数ある場合
ボタンが複数ある場合は「どのボタンが押されたのか」を判定する必要があります。
btn2, btn3 にも同じようにクリックリスナーをセットして、onClick メソッドを書き換えます。
「どのボタンが押されたのか」は押されたボタンの ID を使って判定します。
押されたボタンの ID は v.id で取得できます。
アプリを実行して、タップしたボタンによってメッセージが変わっているか確認しましょう。
まとめ
- シンプルな書き方
- OnClickListener を実装する書き方
どちらを使えば良いか迷うかもしれませんが、私の場合は以下を目安にしています。
「絶対にこれを使う!」というのはないので、参考にしてみてください。
- ボタンが1つで実行するコードが少ない → 方法 ①
- ボタンが複数で実行するコードが似ている → 方法 ②
- 実行するコードが多く、実行内容も異なる → 方法 ① か ②で、ボタンごとにメソッドを用意して呼び出す