Анализ содержаний следовых количеств тяжелых металлов традиционными физико-химическими методами (атомная абсорбция, полярография, фотометрия и др.) требует предварительной пробоподготовки, т.к. металлы в большинстве объектов находятся в связанном состоянии. Они образуют достаточно прочные органические комплексы, мешающие точному и воспроизводимому определению их содержания. Поэтому перед любым анализом необходимо предварительно разрушить органическую составляющую пробы.
При подготовке проб к анализу методами ААС, ИСП-МС и ИСП-АЭС наибольшее развитие получило мокрое озоление проб различными кислотами при СВЧ-поля под давлением (СВЧ-минерализации под давлением).
Процесс минерализации проходит следующим образом: разлагаемая проба и окислительные реагенты помещаются в специальный сосуд из радиопрозрачного химически инертного материала (стекло, кварц, фторопласт), сосуд при необходимости герметично закрывается, переносится в микроволновую систему и реакционная смесь нагревается в СВЧ поле. При этом суммарное время пробоподготовки сокращается в десятки и сотни раз.
Нет смысла чистить только созданный пустой список. Дальше я бы вам советовал следующим образом. Для начала при объявлении адаптера не нужно сразу ему передавать список:
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
и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:
Объяснение:
Анализ содержаний следовых количеств тяжелых металлов традиционными физико-химическими методами (атомная абсорбция, полярография, фотометрия и др.) требует предварительной пробоподготовки, т.к. металлы в большинстве объектов находятся в связанном состоянии. Они образуют достаточно прочные органические комплексы, мешающие точному и воспроизводимому определению их содержания. Поэтому перед любым анализом необходимо предварительно разрушить органическую составляющую пробы.
При подготовке проб к анализу методами ААС, ИСП-МС и ИСП-АЭС наибольшее развитие получило мокрое озоление проб различными кислотами при СВЧ-поля под давлением (СВЧ-минерализации под давлением).
Процесс минерализации проходит следующим образом: разлагаемая проба и окислительные реагенты помещаются в специальный сосуд из радиопрозрачного химически инертного материала (стекло, кварц, фторопласт), сосуд при необходимости герметично закрывается, переносится в микроволновую систему и реакционная смесь нагревается в СВЧ поле. При этом суммарное время пробоподготовки сокращается в десятки и сотни раз.
ответ:Для начала в 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()
}