RecyclerView에 관광 데이터 표시하기
먼저 , build.gradle
에 RecyclerView의 의존성을 추가합니다.
implementation 'androidx.recyclerview:recyclerview:1.x.x'
RecyclerView를 사용하기 위해서는 Adapter가 필요합니다. 데이터를 가져와 각 항목에 표시합니다.
class TourAdapter(
private val onItemClicked: (YourDataClass) -> Unit
) : RecyclerView.Adapter<TourAdapter.ViewHolder>() {
private var dataList = mutableListOf<YourDataClass>()
fun setData(data: List<YourDataClass>) {
dataList = data.toMutableList()
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_tour, parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bind(dataList[position])
}
override fun getItemCount() = dataList.size
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(data: YourDataClass) {
itemView.itemTitle.text = data.field1
itemView.itemDate.text = formatDate(data.field2)
itemView.setOnClickListener { onItemClicked(data) }
}
}
}
이때 formatDate
는 사용자가 제공한 함수로 날짜를 형식에 맞게 변환합니다.
Activity 또는 Fragment에서 RecyclerView를 설정합니다.
val tourAdapter = TourAdapter { data ->
// TODO: 항목 클릭시 동작을 정의합니다.
}
binding.tourRecyclerView.apply {
layoutManager = LinearLayoutManager(this@YourActivity)
adapter = tourAdapter
}
API 호출을 통해 데이터를 가져온 후, Adapter의 setData 메서드를 사용하여 데이터를 RecyclerView에 설정합니다.
val fetchedData = // API 호출을 통해 가져온 데이터
tourAdapter.setData(fetchedData)