ListViewの実装方法のメモ。
・公式ドキュメント
https://developer.android.com/reference/kotlin/android/widget/ListView
実装の流れ 3step
1, UIにListViewを実装する。
2, 表示したいデータをArrayAdapterに格納する。
3, ListViewにArrayAdapterをsetする。
1, UIにListViewを実装する。
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</layout>
2, 表示したいデータをArrayAdapterに格納する。
3, ListViewにArrayAdapterをsetする。
private lateinit var binding: ActivityMainBinding
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
// 表示したデータをArrayAdapterに格納する
val data = arrayOf("青森", "岩手", "秋田", "宮城", "山形", "福島")
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, data)
// ListViewにArrayAdapterをsetする
binding.listView.adapter = adapter
}
}
ArrayAdapterの引数
第1引数: Contextを指定
第2引数: 各項目のレイアウトを指定
第3引数: ListViewに表示させるデータを指定
■■■ タップイベントの実装 ■■■
1, イベントハンドラの実装
// 項目をタップした時の処理
binding.listView.setOnItemClickListener { parent, view, position, id ->
// タップ処理
}
// 項目を長押しした時の処理
binding.listView.setOnItemLongClickListener { parent, view, position, id ->
// 長押し時の処理
}
onItemClickの引数
第1引数: parent ⇒ AdapterView: クリックが発生したAdapterView
第2引数: view ⇒ View: クリックされたAdapterView内のView
第3引数: pasition ⇒ Int: アダプター内のビューの位置
第4引数: id ⇒ long: クリックされたアイテムの行ID
※カスタムAdapterの実装などは後日記述する。