1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【kotlin】ListViewで2行表示 SimpleAdapter

Last updated at Posted at 2021-06-07

■2行のListViewを作ります。

スクリーンショット 2021-06-07 22.21.20.png

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

これで最初のような画面ができます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?