Categories: kotlin

【Kotlin + Android】ListView+BaseAdapterでクリック検出

  • Android初心者が書いた記事です
  • 根本的な所で間違っている可能性があります

ListViewでアダプターを作ってsetOnItemClickListenerが動かなかったのでいろいろ試してみたり調べてみたりした結果下記で動きました

listView.setOnItemClickListener { parent, view, position, id ->
 Log.d("listview" , "item click")
}
class MyAdapter (
 /省略/
 ): BaseAdapter(){
     override fun getView(position: Int, convertView: View?, parent: ViewGroup?):       View { 
         view.setOnClickListener {
             Log.d("click" , "adapter getview view click")
             (parent as ListView).performItemClick(view , position , 0)
         }
     }
 }

(parent as ListView).performItemClick(view , position , 0)

ここが重要でこれがなかったらActivity側の「setOnItemClickListener」が動かなかった

これで何時間つぶしたかわからないのでAndroid初心者の方の助けになれば・・・

Pype