AndroidStudio リストデータが「固定」と「不変」の違い
この記事では、超初心者な私が超初心者向けに書いた内容になっています。
さて、今回はアンドロイドアプリのリストデータを設定する時の方法について、まとめました。
なお、データを扱う上で基本的にはDBとの接続を図りますが、今回は、文字列としてデータを扱う場合と、kotlinファイルに記述してリストデータを扱う方法についてのみのまとめとなります。
リストデータが固定の場合
リストデータとして、strings.xmlに記述した文字列リストを使用する。
サンプルコード
<resources>
<string name="app_name">リスト選択サンプル</string>
<string-array name="lv_menu">
<item>唐揚げ定食</item>
<item>ハンバーグ定食</item>
<item>生姜焼き定食</item>
<item>ステーキ定食</item>
<item>野菜炒め定食</item>
<item>とんかつ定食</item>
<item>ミンチかつ定食</item>
<item>コロッケ定食</item>
<item>回鍋肉定食</item>
<item>麻婆豆腐定食</item>
<item>青椒肉絲定食</item>
<item>焼き魚定食</item>
<item>焼肉定食</item>
</string-array>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lvMenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:entries="@array/lv_menu"/>
リストデータが可変の場合
Kotlinで記述する必要がある。
まずはサンプルコードを記載します。
サンプルコード
<?xml version="1.0" encoding="utf-8"?>
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lvMenu"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
package com.websarva.wings.android.listviewsample2
import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.ListView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//ListViewオブジェクトを取得
val lvMenu = findViewById<ListView>(R.id.lvMenu)
//リストビューに表示するリストデータを作成
var menuList = mutableListOf("からあげ定食","ハンバーグ定食","生姜焼き定食","ステーキ定食",
"野菜炒め定食","とんかつ定食","ミンチかつ定食","チキンかつ定食","コロッケ定食","回鍋肉定食",
"麻婆豆腐定食","青椒肉絲定食","焼き魚","焼肉定食")
//アダプタオブジェクトを生成
val adapter = ArrayAdapter(this@MainActivity,android.R.layout.simple_list_item_1,menuList)
//リストビューにアダプトオブジェクトを設定
lvMenu.adapter = adapter
}
}
上記のコードを実行すると、固定の場合と同じ画面になる。
解説
アクティビティ中でリストデータを生成する場合の手順
1,リストデータを用意する
2,上記リストデータをもとにアダプタオブジェクトを生成する
3,ListViewにアダプタオブジェクトをセットする
1,リストデータを用意する
var menuList = mutableListOf
が該当します。
2,上記リストデータをもとにアダプタオブジェクトを生成する
val adapter = ArrayAdapter
が該当します。
アダプタ
とは、リストビューに表示するリストデータを管理し、リストビューの各行にそのリストデータを当てはめていく動きをするオブジェクトです。
イメージ画像
アダプタオブジェクトの生成
アダプタオブジェクトを生成するには、adapterインターフェイスを実装したクラスを利用します。
主なadapterインターフェイス3種類
インターフェイス名 | 内容 |
---|---|
ArrayAdapter | 元データとしてArrayまたは、MutableListを利用 |
SimpleAdapter | 元データとしてMutableList>を利用 XMLデータやJSONデータの解析結果を格納するのに便利 |
SimpleCursorAdapter | 元データとしてCursorオブジェクト を利用 Cursorオブジェクト は、Android端末内のDBを利用する際、SELECT文の結果が格納されたもの |
今回は、定食リストをMutableListで生成しているので、ArrayAdapter
を使用している。
3,ListViewにアダプタオブジェクトをセットする
lvMenu.adapter = adapter
が該当する
ListViewにアダプタオブジェクトをセットするには、ListViewのadapterプロパティを利用する。
Author And Source
この問題について(AndroidStudio リストデータが「固定」と「不変」の違い), 我々は、より多くの情報をここで見つけました https://qiita.com/nipp/items/b65e520783c6d03b9abb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .