Android - Kotlin的RecyclerView應用
Model設計
先設計一個bean成一個建構子的模樣,就是Kotlin File,型別加上?表示可能為null
data class DogBreed(
val breedId: String?,
val dogBreed: String?,
val lifeSpan: String?,
val breedGroup: String?,
val bredFor: String?,
val temperament: String?,
val imageUrl: String?
)
RecyclerView Adapter
1.先設計項目的layout.xml,就自行設計
2. 自行新增一個Adapter
3.跟Java寫法一樣,先建內部類別XXViewHolder繼承自RecyclerView.ViewHolder。
4. 把onCreateViewHolder(),getItemCount(),onBindViewHolder()都實作完
// 2.再implement Adapter<ViewHolder>
class DogsListAdapter(val dogList: ArrayList<DogBreed>) : RecyclerView.Adapter<DogsListAdapter.DogViewHolder> (){
//1.一樣先寫ViewHolder
class DogViewHolder(var view : View) : RecyclerView.ViewHolder(view)
//3.實作
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DogViewHolder {
val inflater:LayoutInflater = LayoutInflater.from(parent.context)
val view = inflater.inflate(R.layout.item_dog, parent, false)
return DogViewHolder(view)
}
override fun getItemCount() = dogList.size
override fun onBindViewHolder(holder: DogViewHolder, position: Int) {
holder.view.name.text = dogList[position].dogBreed
holder.view.lifespan.text = dogList[position].lifeSpan
};
fun updateDogList(newDogsList : List<DogBreed>)
{
dogList.clear();
dogList.addAll(newDogsList)
notifyDataSetChanged()
}
}
Last updated
Was this helpful?