ListView

tpids·2024년 8월 20일

Android

목록 보기
23/29

ListView

package com.example.ex_listview

import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.ListView
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // 1. 아이템 정의 (ArrayList)
        val arr: Array<String> = arrayOf("돈까스", "마라탕", "떡볶이", "피자", "치킨", "우동")

        // 2. Adapter 준비(생성) - context, 레이아웃, 아이템
        var myAdapter : ArrayAdapter<String>
        = ArrayAdapter(this,android.R.layout.simple_list_item_1, arr)

        // 3. listview에 어댑터를 연결
        val lv:ListView = findViewById<ListView>(R.id.lv)
        lv.adapter = myAdapter

        // 리스트뷰 개별 아이템을 선택했을 때 이벤트 발생
        lv.setOnItemClickListener { adapterView, view, i, l ->
            // adapterView : 사용중인 listview
            // view : 선택한 하나의 item 항목
            // i : 선택한 item의 위치
            // l : 선택한 item id
            Toast.makeText(this, arr[i].toString(), Toast.LENGTH_SHORT).show()
        }
    }


}

ListView_toast

ListView_추가

package com.example.ex_listview

import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.EditText
import android.widget.ListView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat

class MainActivity2 : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)

        // 1. item 리스트 (입력한 값을 나중에 추가 => Array(가변))
        var arr = ArrayList<String>() // 비어있는 배열

        // 2. Adapter 생성
        var myAdapter: ArrayAdapter<String>
        = ArrayAdapter(this,android.R.layout.simple_list_item_1, arr)

        // 3. listview에 어댑터 적용 (Array(item)을 리스트뷰에 보여주는 거)
        //    => 새로운 아이템이 추가가 되면 해당 아이템을 포함한 Array를 적용
        val btn:Button = findViewById<Button>(R.id.btn)
        val etItem:EditText = findViewById<EditText>(R.id.etItem)
        val lv2:ListView = findViewById<ListView>(R.id.lv2)

        // lv2.adapter = myAdapter

        // -EditText에 아이템 텍스트 작성 후에 버튼을 클릭하면
        // 작성한값을 배열에 추가, 추가가된 아이템까지 포함해서 리스트뷰에 어댑터를 적용
        btn.setOnClickListener{
            val input = etItem.text.toString()
            arr.add(input)
            lv2.adapter = myAdapter // **
        }
    }
}
profile
개발자

0개의 댓글