이번 시간에는 코틀린(Kotlin)으로 RecyclerView 리스트 만드는 방법
두 번째 시간으로 화면+데이터 연결할 어댑터와 메인코드를 만들어
보겠습니다.
이전 포스팅은 아래 링크를 들어가시면 됩니다.
2022.05.31 - [안드로이드] - [Kotlin 코틀린] 간단한 RecyclerView 만드는 방법 part1 - 데이터 & 화면
- 설명 -
1. 화면(list_item.xml)과 데이터를 연결해주는 클래스입니다.
2. onCreateViewHolder 화면 설정
ItemViewHolder에게 view 전달
3. onBindViewHolder 데이터 설정
4. ItemViewHolder 컴포넌트 초기화
class ItemAdapter(private val itemList: List<Item>): RecyclerView.Adapter<ItemAdapter.ItemViewHolder>(){
//화면 설정
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.list_item, parent, false)
return ItemViewHolder(view)
}
//데이터 설정
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
val currentItem = itemList[position]
//데이터 넣기
holder.imageView.setImageResource(currentItem.imageResource)
holder.textView1.text = currentItem.text1;
}
override fun getItemCount() = itemList.size
class ItemViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){
//초기화
val imageView: ImageView = itemView.findViewById(R.id.imageView)
val textView1: TextView = itemView.findViewById(R.id.textView)
}
}
- 설명 -
1. val sampleList = getData(30)
샘플데이터 생성
2. ItemAdapter(sampleList)
샘플데이터 어댑터에 전달
3. recyclerView.adapter = ItemAdapter(sampleList)
어댑터 recyclerView에 설정
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val sampleList = getData(30)
//초기화
val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
//recyclerView 설정
recyclerView.adapter = ItemAdapter(sampleList)
recyclerView.layoutManager = LinearLayoutManager(this)
recyclerView.setHasFixedSize(true)
}
private fun getData(size: Int): List<Item>{
//데이터 넣을 리스트
val list = ArrayList<Item>()
for(i in 0 until size){
//조건문( i % 3 나머지 값에 따라 이미지 drawable에 담기
val drawable = when(i % 3){
0 -> R.drawable.ic_android
1 -> R.drawable.ic_boy
else -> R.drawable.ic_call
}
//데이터 넣기
val item = Item(drawable, "Item $i")
//리스트에 데이터 추가
list += item
}
return list
}
}
2022.05.14 - [안드로이드] - [안드로이드] Database Room 사용법 part1 - Room 설정
2022.05.07 - [안드로이드] - [안드로이드] HTTP 통신 Volley 사용법 part1 - 간단한 요청 및 응답
[안드로이드 코틀린] ViewModel - 화면 회전 시 데이터 초기화 막는 방법 (0) | 2022.06.03 |
---|---|
[안드로이드 코틀린] DataBinding 컴포넌트 쉽게 접근하는 방법 (0) | 2022.06.02 |
[안드로이드 코틀린] 간단한 RecyclerView 만드는 방법 part1 - 데이터 & 화면 (0) | 2022.05.31 |
[안드로이드 코틀린] 함수(function) 만드는 방법 part6 - 가변 인자(vararg) & 스프레드 연산자(spread operator) (0) | 2022.05.30 |
[안드로이드 코틀린] 함수(function) 만드는 방법 part5 - default & named (0) | 2022.05.29 |
댓글 영역