В информационной модели жилого дома , представленной в виде чертежа ( общий вид) , отражается его; А) структура Б)цвет В) стоимость Г) надёжность Д)плотность
Нет смысла чистить только созданный пустой список. Дальше я бы вам советовал следующим образом. Для начала при объявлении адаптера не нужно сразу ему передавать список:
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
и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:
#include <iostream>
using namespace std;
void max(float a[])
{
for(int i2 = 0; i2<3; ++i2) // сортируем массив
{
for(int i = 0; i<2; ++i)
{
if(a[i]>a[i+1])
{
int temp1, temp2;
temp2=a[i];
temp1=a[i+1];
a[i]=temp1;
a[i+1]=temp2;
}
}
}
cout << "Max: " << a[2]; // выводим последний и наибольший элемент
}
int main()
{
cout << "Enter three numbers. ";
float a[3]; // float для поддержки дробных чисел
for(int i = 0; i<3; ++i)
{
cout << endl << "Number #" << i << ": ";
cin >> a[i];
}
max(a);
}
ответ:Для начала в 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()
}