Programming/Android

[Android Studio | Kotlin] 코틀린 기본 리스트뷰 다루기(아이템 추가, 삭제 등)

Rexter 2019. 12. 30. 11:05
반응형

0. 리스트 뷰 레이아웃 추가

사용하고자 하는 레이아웃 에(activity_main.xml) ListView 를 추가 후 id 를 지정해 줍니다.

 

<ListView
  android:id="@+id/lv_storage"
  android:layout_width="match_parent" android:layout_height="match_parent"/>

 

이제 레이아웃을 연결한 Activity에서(MainActivity) 불러와서 사용하시면 됩니다.

 

 사용할 액티비티(MainActivity) 의 onCreate 안에서

 

 ㄱ. 사용할 배열 선언

   val arrayOfListView = ArrayList<String>()

 ㄴ. 어댑터 선언

   val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, arrayOfList)

 ㄷ. 어댑터 연결
   lv_main.adapter = adapter

 

 

배열을 선언 할 때 미리 값을 입력하고 사용해도 되고 나중에 하나씩 추가해서 사용해도 됩니다.

배열 선언 하면서 고정된 값들만 쓰는 건 어댑터 연결하는 부분의 맨 마지막 항목만 배열로 해 주시면 됩니다.

 

 

 

1. 아이템 추가

 

 adapter.add("test1")

 adapter.add("test2")

 ...

 adapter.notifyDataSetChanged()

 

 

2. 클릭 리스너 등록(setOnItemClickListener)

 onCreate 안에서

 

lv_main.setOnItemClickListener { parent, view, position, id ->
  val selectedItem = view as TextView
  Toast.makeText(this, selectedItem.text, Toast.LENGTH_SHORT).show()
}

 

로 사용하시면 됩니다.

 

3. 삭제

선택한 아이템을 삭제 하는 걸로 설명 드릴게요.

 

lv_main.setOnItemClickListener { parent, view, position, id ->
  val selectedItem = view as TextView
  Toast.makeText(this, selectedItem.text.toString() + " is deleted", Toast.LENGTH_SHORT).show()
  adapter.remove(selectedItem.text.toString())
}

remove 의 경우에는 adapter.notifyDataSetChanged() 를 굳이 하지 않아도 작동은 잘 됩니다.

반응형