package jackall.moncalc.adapter import android.content.Context import android.databinding.DataBindingUtil import android.support.v7.widget.RecyclerView import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import jackall.moncalc.R import jackall.moncalc.databinding.HistoryListItemBinding import jackall.moncalc.viewmodel.HistoryItemViewModel import jackall.moncalc.vo.HistoryItem /** * Created by matsumoto_k on 2017/11/03. */ class HistoryRecyclerAdapter(var context: Context) : RecyclerView.Adapter<HistoryRecyclerAdapter.ViewHolder>() { var items: ArrayList<HistoryItem> = ArrayList() inner class ViewHolder(itemView: View, viewModel: HistoryItemViewModel) : RecyclerView.ViewHolder(itemView) { var viewModel: HistoryItemViewModel? = null init { this.viewModel = viewModel } fun loadItem(item: HistoryItem) { viewModel?.loadItem(item) } } fun setItemAndRefresh(items: ArrayList<HistoryItem>) { this.items = items notifyDataSetChanged() } fun getItemAt(position: Int): HistoryItem { return items.get(position) } override fun onBindViewHolder(holder: ViewHolder?, position: Int) { val item = getItemAt(position) holder?.loadItem(item) } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder { val binding = DataBindingUtil.inflate<HistoryListItemBinding>(LayoutInflater.from(context), R.layout.history_list_item, parent, false) binding.historyItemViewModel = HistoryItemViewModel() return ViewHolder(binding.root, binding.historyItemViewModel!!) } override fun getItemCount(): Int { return items.size } }