Я делаю трекер артериального давления для практических целей, где пользователь может хранить свои данные артериального давления. Я планирую сгруппировать значения по дням (поэтому карта содержит измерения за день). У меня есть настройка RecyclerView
, и я могу заполнить ее хорошо заполненными данными. Я просто не знаю, как сгруппировать их по CardView
с.
Из Fragment
Я попробовал это:
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProviders.of(this).get(DataListViewModel::class.java)
bpList = viewModel.data
val bpAdapter = BpListAdapter(bpList)
bpData.adapter = bpAdapter
bpData.layoutManager = LinearLayoutManager(context)
val dataByDay = bpList.groupBy { it.date.dayOfYear() }
val inflater = LayoutInflater.from(context)
for (k in dataByDay.keys) {
var card = inflater.inflate(R.layout.bp_day_card, bpData, false);
for (v in dataByDay[k]!!) {
card.findViewById<CardView>(R.id.cw).addView(bpAdapter.itemViews[bpList.indexOf(v)])
}
}
}
, что привело к IndexOutOfBoundsException
.