【发布时间】:2022-04-19 17:56:51
【问题描述】:
如何在 android Kotlin 中创建合并适配器类
我有两类一类包含标题另一类包含图像卡如何创建合并 kotlin 中的适配器类
电影卡适配器
class MovieCardAdapter (private var image:IntArray):RecyclerView.Adapter<MovieCardAdapter.CardViewHolder>(){
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CardViewHolder {
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.movie_cardview,parent,false)
return CardViewHolder(itemView)
}
override fun onBindViewHolder(holder: CardViewHolder, position: Int) {
holder.movieImage.setImageResource(image[position])
holder.movieImage.setOnClickListener { view ->
val intent = Intent(view.context, MovieDetailsActivity::class.java)
intent.putExtra("samples",image[position] )
view.context.startActivity(intent)
}
}
override fun getItemCount(): Int {
return image.size
}
class CardViewHolder(itemView: View) :RecyclerView.ViewHolder(itemView){
val movieImage : ImageView = itemView.findViewById(R.id.movieImage)
val numberOfTrailer : TextView = itemView.findViewById(R.id.number_of_trailer)
} }
标头适配器
class HeaderAdapter(private var section:String): RecyclerView.Adapter<HeaderAdapter.HeaderViewHolder>(){
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HeaderViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.headerview, parent, false)
return HeaderViewHolder(view)
}
override fun onBindViewHolder(holder: HeaderViewHolder, position: Int) {
holder.headerTxt.text = section
holder.headerLayout.setOnClickListener { view ->
val intent = Intent(view.context, GridLayoutDisplayActivity::class.java)
intent.putExtra("samples", section )
view.context.startActivity(intent)
}
}
override fun getItemCount() = 1
class HeaderViewHolder(view: View) : RecyclerView.ViewHolder(view){
val headerTxt: TextView = itemView.findViewById(R.id.headerTxt)
val headerLayout: View = itemView.findViewById(R.id.section_click)
} }
片段
val movieCardAdapter = MovieCardAdapter(image)
val headerAdapter = HeaderAdapter("On Web")
binding.imageCardRecycleview.adapter = headerAdapter
【问题讨论】:
-
在
ConcatAdapter上查找示例,如果这就是您的意思。 -
是的,我想 concatAdapter 请给出 concat Adapter 的例子
标签: android kotlin android-recyclerview