nikitosgurbano
07.10.2022 15:36

Зробити додаток "магазин". В магазині мають бути якісь товари, ціна яких зберігається в змінних(мінімум 4 товари).

Логіка програми.
Користувач вибирає товар у магазині,та вказує к-сть, скільки хоче придбати, програма показує загальну вартість, користувач вводить суму до оплати, якщо сума недостатня, повідомити про це користувачу, він товар не купив, якщо суму яку він дав рівна ціні товару, тоді показати що він купив цей товар, якщо сума яку він дав більше ціни товару, видати решту та показати що він купив цей товар.
python

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
androp4ik1
30.06.2022 04:36
Потому что соединение не идеально, оно прерывается, некоторые данные по пути теряются. Допустим, я хочу передать файл по интернету. Если файл небольшой, то велика вероятность, что он не пострадает. В противном случае можно потратить много времени на передачу части файла, после чего данные передадутся с ошибкой, которую мы обнаружим только после передачи всего файла. Передавая информацию пакетами же можно этого избежать, так как любая потеря данных будет сразу видна по плохому пакету. После этого можно эту ошибку сразу и обработать и, допустим запросить повтор предыдущего пакета или попытаться починить пакет, прибывший с ошибкой.
0,0(0 оценок)
Ответ:
KristinaKinka
15.02.2022 08:18

ответ:Для начала в 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()

}

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота