Запиши цифры в верном порядке. команда вызова алгоритма исполняется следующим образом: 1 формальные входные данные алгоритма заменяются значениями фактических входных данных, указанных в команде вызова алгоритма; 2 для заданных входных данных исполняются команды алгоритма; 3 полученные результаты присваиваются переменным с именами фактических результатов; 4 осуществляется переход к следующей команде основного алгоритма.
ответ:Многие страны перешли на т.н. «информационное общество», некоторые – в процессе перехода, в зависимости от факторов, влияющих на то или иное население. Все меньше уделяется внимания печатным изданиям: ученные говорят о том, что лет через 30 газеты, журналы, книги исчезнут с прилавков.
С одной стороны, электронные страницы – это хорошо, меньше вреда наносится окружающей среде, да и хранить большое количество информации легче и удобнее в электронном виде. С другой стороны – человечество становится все более зависимым от техники.
ответ:Для начала в 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()
}