Skip to content

Instantly share code, notes, and snippets.

@hirauchg
Last active May 19, 2019 15:13
Show Gist options
  • Save hirauchg/11c3c9cc234324e2b8ec75b94c83675a to your computer and use it in GitHub Desktop.
Save hirauchg/11c3c9cc234324e2b8ec75b94c83675a to your computer and use it in GitHub Desktop.
RecyclerViewでリスト表示を実装する - Adapterの実装 - 1
class SampleAdapter(val mListener: SampleAdapterListener): RecyclerView.Adapter<SampleAdapter.ViewHolder>() {
interface SampleAdapterListener {
fun onClickCard(position: Int)
fun onClickDelete(position: Int)
}
private val mUI = SampleAdapterUI()
private var mSampleModelList = listOf<SampleModel>()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(mUI.createView(AnkoContext.create(parent.context, parent)))
}
override fun getItemCount(): Int {
return mSampleModelList.size
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = mSampleModelList.get(position)
holder.card.setOnClickListener {
mListener.onClickCard(position)
}
holder.delete.setOnClickListener {
mListener.onClickDelete(position)
}
holder.name.text = item.name
}
fun setSampleModelList(sampleModelList: List<SampleModel>) {
mSampleModelList = sampleModelList
}
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val card: LinearLayout = mUI.mCard
val name: TextView = mUI.mName
val delete: ImageView = mUI.mDelete
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment