ответ:Для начала в onCreate() уберите эту строку:
chatContainer.clear()
Нет смысла чистить только созданный пустой список. Дальше я бы вам советовал следующим образом. Для начала при объявлении адаптера не нужно сразу ему передавать список:
lateinit var adapter: RecyclerChatAdapter
Дальше как только ваш список заполнен вы это проверяете в цикле и инициализируете адаптер:
when {
documentSnapshot != null -> {
for (dc in documentSnapshot.documentChanges) {
when (dc.type) {
DocumentChange.Type.ADDED -> {
val chat = dc.document.toObject(Chat::class.java)
chatContainer.add(chat) // Добавление данных в Recycler
if(chatContainer.size == documentSnapshot.documentChanges)
{
adapter = RecyclerChatAdapter(chatContainer)
}
}
}
}
}
}
и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:
for (i in chatContainer) {
adapter.notifyDataSetChanged()
}
begin
write('h, h1: '); readln(h,h1);
write('m, m1: '); readln(m,m1);
write('k, k1: '); readln(k,k1);
if h div h1 < m div m1
then b:=h div h1 else b:=m div m1;
if k div k1 < b then b:=k div k1;
writeln('b = ',b);
end.
Пример:
h, h1: 1000 100
m, m1: 600 50
k, k1: 500 50
b = 10
С определяется на сколько бутербродов хватит хлеба, масла или колбасы соответственно. Из этих количеств выбирается минимальное значение. В примере: хлеба хватит на 1000 div 100 = 10 бутербродов, масла - на 600 div 50 = 12; колбасы - на 500 div 50 = 10. Значит, из данного количество продуктов можно сделать 10 полноценных бутербродов.