AndroidStudio 목록 데이터가 '고정'과 '불변'의 차이

이 기사에서는 초보자인 제가 초보자를 위해 쓴 내용입니다.

그런데, 이번은 안드로이드 앱의 리스트 데이터를 설정할 때의 방법에 대해, 정리했습니다.
덧붙여 데이터를 취급하는데 있어서 기본적으로는 DB와의 접속을 도모합니다만, 이번은, 캐릭터 라인으로서 데이터를 취급하는 경우와, kotlin 파일에 기술해 리스트 데이터를 취급하는 방법에 대해서만의 정리가 됩니다.

목록 데이터가 고정된 경우



리스트 데이터로서, strings.xml에 기술한 캐릭터 라인 리스트를 사용한다.

샘플 코드



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>

Activity_main.xml
<?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에서 기술할 필요가 있다.
우선은 샘플 코드를 기재합니다.

샘플 코드



activity_main.xml
<?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"/>

MainActivity.kt
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 인터페이스를 구현한 클래스를 사용합니다.

주요 어댑터 인터페이스 3 종류




인터페이스 이름
내용


ArrayAdapter
원본 데이터로 Array 또는 MutableList 사용

SimpleAdapter
원 데이터로서 MutableList>를 이용 XML 데이터나 JSON 데이터의 해석 결과를 저장하는데 편리

SimpleCursorAdapter
원본 데이터로 Cursorオブジェクト를 사용합니다. Cursorオブジェクト

이번에는 정식리스트를 MutableList로 생성하고 있기 때문에 ArrayAdapter를 사용하고 있습니다.

3,ListView에 어댑터 객체 설정


lvMenu.adapter = adapter 해당
ListView에 어댑터 객체를 설정하려면 ListView의 adapter 속성을 사용합니다.

좋은 웹페이지 즐겨찾기