1. AdapterView
1. ArrayAdapter
1) ListView 준비 : ListView만으로는 아무것도 안나옴
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2) Adapter 적용
// adapter에게 항목 하나의 UI 구성과 항목에 대한 data를 줌
val adapter = ArrayAdater(this, android.R.layout.simple_list_item_1, datas)
listView.adapter = adapter
1. SimpleAdapter
val datas: ArrayList<HashMap<String?, String?>> = ArrayList()
// Map 객체는 key 값이 있어야 데이터를 뽑을 수 있기 때문에
// 4번째 매개변수에서 key 값을 알려줌
// 5번째 매개변수는 각 key 값에 해당하는 데이터가 출력될 view의 id
val adapter = ArrayAdater(
this,
datas,
android.R.layout.simple_list_item_2,
arrayOf("name", "content"),
intArrayOf(android.R.id.text1, android.R.id.text2))
listView.adapter = adapter
1. ListView
adapter.notifyDataSetChanged()
listView.setOnclickListener { adapterView, view, i, l ->
// 세번째 매개변수인 i가 유저가 선택한 인덱스 값
...
}
1. CustomAdpater, 조금 더 공부하고 글 추가하기
1) BaseAdapter 혹은 ArrayAdapter, SimpleAdapter를 상속 받아 작성
class DriveAdapter(val cxt: Context, val resId: Int, val datas: MutableList<DriveVO>):ArrayAdapter<DriveVO>(cxt, resId) {
}
2) Adapter에서 override 받아야 하는 함수 작성(getCount() - 항목 개수 리턴)
override fun getcount(): Int {
return datas.size
}
3) Adapter에서 override 받아야 하는 함수 작성(getView() - 항목 구성)
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
// 하나의 항목을 구성하기 위해 call하는 함수, 첫번째 매개변수가 항목의 위치
// 여기서 리턴되는 것이 뷰에 출력 되는 것임
// 한 항목의 data를 어떻게 나열할 건지, 한 항목을 구성하기 위한 뷰에 이벤트를 어떻게 할지, 한 항목을 위한 레이아웃을 어떻게 조정할 건지
}
1. Spinner
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
val aa: ArrayAdapter<String> =
ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, datas)
aa.setDropDownViewResource(android.R.layout.simple_spinner_item)
spinner.adapter=aa
2. AutoCompleteTextView
<AutoCompleteTextView
android:id="@+id/auto"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
val autoAdapter: ArrayAdapter<String> =
ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, datas)
autoCompleteTextView.setAdapter(autoAdapter)