はじめに
こんにちは。
現在、高専の4年生をしており、最近Androidアプリ開発について勉強しています。きっかけとしては単純なもので、自身の研究内容にAndroidアプリの開発の知識が必要だったというだけです。プログラミング自体に興味を持ってからの日々が浅いので、正直見るもの見るもの新鮮です。
この記事を見られているということは、タイトルにも書かれているようにAndroidアプリ開発の初心者、もしくは、これから学んでいくという方がほとんどだと思います。そのため、『これからAndroidアプリ開発について学んでいきたいと思ったけどプログラミング全然知らないけど大丈夫かな?』って方をメインに、つまずきやすいと感じた部分を初心者なりに精一杯わかりやすく解説して学んでいけたらと思っています。
#イベントとイベントハンドラ、リスナ
今回はイベントとイベントハンドラとリスナについて解説していきます。正直、イベントとリスナはまだしも、イベントハンドラなんていう単語聞いたことないと思います。もちろん私も聞いたことなかったです。意味自体は非常に簡単で一度聞いてしまえば難しく考える必要なものではないです。
イベントとは、ボタンのタップ、アイコンをドラッグなど使用者が画面に対して何かの操作を実行することです。いわゆるスマートフォンの基本操作です。そのイベントに対して実行する処理のことをイベントハンドラと呼びます。こちらは、画面の遷移やアプリケーションの起動などといった動作のことです。そして、このイベントの検出を行っているものをリスナと呼びます。
この考え方自体はAndroidに限らず、iOSやデスクトップアプリなどといった使用者の操作に応じて特定の処理を実行するアプリケーションでの共通の考え方でもあります。
#Androidでリスナを設定する手順
ここでは実際に簡易的なアプリケーションの作成をしていきます。あらかじめ下記のコードを記述しておくことをお勧めします。このとき、『override』にコンパイルエラーが発生していても問題ありません。
java/com.websarva.wings.android.ibennto/MainActivity.kt
1.各イベントに対応したリスなクラスを作成する
2.リスナクラス内の所定のメソッド(つまりイベントハンドラ)に処理を記述する
3.リスナクラスのインスタンスを生産してリスナ設定メソッドを引数(媒介)として渡す
リスナクラスの作成する
MainActivityのonCreate()メソッド以降に次のコードを記述します。ここでは、privateインナークラスにListenerクラスを追記することで、『ボタンのタップ』という操作に対してリスナクラスへ移ります。
java/com.websarva.wings.android.ibennto/MainActivity.kt
リスナクラスには専用のインターフェースを実装します。タップという操作に対してのリスナクラスを作成するには『View.OnClickListener』インターフェースを実装します。インターフェースを実装した時点でそのインターフェースに定義されているメソッドを記述する必要があります。今回のコードのView.OnClickListenerインターフェースではonClick()メソッドのことです。つまり、これがイベントハンドラです。
リスナクラス内の所定のイベントハンドラに処理を記述する
次に、イベントハンドラであるonClick()メソッドに処理を記述していきます。EditTextから入力された文字を取得し、TextViewに表示させる動作です。
java/com.websarva.wings.android.ibennto/MainActivity.kt
リスナクラスのインスタンスを生産してリスナ設定メソッドを引数として渡す
最後にリスナを設定します。onCreate()メソッド内に以下のコードを挿入します。
java/com.websarva.wings.android.ibennto/MainActivity.kt
完成です!
#最後に
今回作成したものは単純なアプリケーションですが、今後の必要となる要素が詰まっているので繰り返し学習していきたいですね。
本記事は、『基礎&応用力をしっかり育成! Androidアプリ開発の教科書 Kotlin対応 なんちゃって開発者にならないための実践ハンズオン』を参考にしております。