【Kotlin/Android Studio】SimpleOnItemTouchListenerの使い方!RecyclerViewでタップイベントを実装する方法

この記事からわかること
- Android Studio/KotlinでRecyclerViewにタップイベントを実装する方法
- SimpleOnItemTouchListenerの使い方
- onInterceptTouchEventメソッド内の記述方法
index
[open]
\ アプリをリリースしました /
参考文献:公式リファレンス:SimpleOnItemTouchListener
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
RecyclerViewでタップイベント
AndroidのRecyclerViewではリストアイテムをタップした際に任意の処理を実行するイベントを追加することが可能です。

それを実現させるのがSimpleOnItemTouchListener
クラスです。このクラスはリストアイテムをタップした際にコールバックメソッドが呼び出され、任意の処理を実行させる仕組みを提供しています。
実装の流れ
実装方法は少しややこしいので流れと方法を1つずつ見ながら実装していきたいと思います。とりあえずタップ時に要素の値を表示するようにしていきます。
- SimpleOnItemTouchListenerを継承したクラスの作成
- コールバックメソッド内を実装
- Adapter側にアイテム取得メソッドを用意
SimpleOnItemTouchListenerを継承したクラスの作成
RecyclerViewにタップイベントを追加するにはSimpleOnItemTouchListener
クラスを継承させます。クラス名は何でも良いですがここではItemTouchListener
クラスを用意しておきます。
コールバックメソッド内(onInterceptTouchEvent)を実装
続いてonInterceptTouchEvent
メソッド内からタップされた要素番号などを取得し、アイテム情報を取得、そこから実行したい処理などを記述します。
onInterceptTouchEvent
の引数rv
のgetChildAdapterPosition
からタップされたリストアイテムインデックスを参照できます。少し順番が逆になりますが次でアダプター側(今回はMyListAdapter)のgetItemAtPosition
メソッドを用意します。
Adapter側にアイテム取得メソッドを用意
Adapterクラス側にアイテム取得用のメソッドを用意します。ここでは引数として受け取ったインデックス番号を元にデータソースからアイテムを取得させます。
RecyclerViewとの紐付け
RecyclerView
と紐づけるためには以下のように記述します。
これでアイテムをタップした際にアイテムのデータを取得し表示させることができるようになります。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。