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 // **
}
}
}