そーす

福岡在住のプログラマ

基本的にCustomViewを使うメリット(Adapter編)

class ItemAdapter(context: Context) : ArrayAdapter<Item>(context, 0, mutableListOf<Item>()) {
    var delegate: EventDelegate? = null

    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
        val view = (convertView as? ItemView) ?: ItemView(context)
        view.delegate = delegate
        view.set(getItem(position))
        if (position == count - 1) {
            delegate?.onCalledLastItem()
        }
        return view
    }

    interface EventDelegate : ItemView.EventDelegate {
        fun onCalledLastItem()
    }
}

getViewの中すっきりするよね。