■2行のListViewを作ります。
activity_main.xmlにListViewを作った程
1
■SimpleAdapterを使えば2行になる。
SimpleAdapterを使うには
MutableListの配列の中にMutableMapを入れた配列が必要
map型のキーはstringで値の型はなんでもいいです。
空のmap型が入るMutableListを作る。
データを後にこの中に入れていく。
//MainActivity.kt
val lvMenu = findByID<ListView>(R.id.lvMenu)
//空の配列を用意
val mnuList: MutableList<MutableMap<String,String>> = mutableListOf()
2
Map型の配列を作り
mutableListに
mutableMapOf()の配列を入れていきます。
val lvMenu = findByID<ListView>(R.id.lvMenu)
val menuList: MutableList<MutableMap<String,String>> = mutableListOf()
//nameとpriceがキー ピカチュウと800円が値 ピカチュウが1行目に入る。
var menu = mutableMapOf("name" to "ピカチュウ","price" to "800円")
//空の配列menuListにmenuを追加する(add)。
menuList.add(menu)
//同じ事をする。
menu = mutableMapOf("name" to "ヒトカゲ","price" to "850円")
menuList.add(menu)
//同じ事をする。
menu = mutableMapOf("name" to "カメックス","price" to "12000円")
menuList.add(menu)
//入ったイメージ menuList((name = ピカチュウ,price = 800円),(name = ヒトカゲ,price = 850円),(name = カメックス,price = 12000円))
3
■SimpleAdapterのオブジェクトを作るのに5個の引数が必要!
SimpleAdapter(context:Context,data:MutableList<MutableMap<String,*>>,resource:Int,from: Array<String>,to:IntArray)
▼第1引数
context: Context
どの画面
▼第2引数
data:MutableList>
リストのデータ
▼第3引数
resource:Int
リストビューのレイアウトを表すR値
例: android.R.layout.simple_lvMenu_item_2
これで2行になる。
■重要!! 第4引数と第5引数
▼第4引数
from: Array
リストデータのキーが入る配列を準備
arrayOf("name",""price)
順番的に
nameが第5引数のandroid.R.id.text1に入る
priceが第5引数のandroid.R.id.text2に入る
▼第5引数
to:IntArray
■ListViewの各行の画面部品のidのR値の配列
intArrayOf(android.R.id.text1,android.R.id.text2)を準備
android.R.id.text1がリストビューの1行目になるtext
android.R.id.text2がリストビューの2行目になるtext
▼第4引数と▼第5引数でリストデータの入る行を決めている。
val lvMenu = findByID<ListView>(R.id.lvMenu)
val menuList: MutableList<MutableMap<String,String>> = mutableListOf()
var menu = mutableMapOf("name" to "ピカチュウ","price" to "800円")
menuList.add(menu)
menu = mutableMapOf("name" to "ヒトカゲ","price" to "850円")
menuList.add(menu)
menu = mutableMapOf("name" to "カメックス","price" to "12000円")
menuList.add(menu)
//SimpleAdapterの第4引数に入ります。
val from = arrayOf("name","price")
//SimpleAdapterの第5引数に入ります。
val to = intArrayOf(android.R.id.text1, android.R.id.text2)
//リストビューにデータを表示させるadapterを作る。
val adapter = SimpleAdapter(this@MainActivity,menuList,android.R.layout.sample_list_item_2,from,to)
//lvMenuにadapterを入れる。
lvMenu.adapter = adapter
これで最初のような画面ができます。