ответ:Для начала в 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()
}
Если создать шаблон строки с автозаполнением, то можно немного у код:
import sys
num_steps = int(sys.argv[1])
fmt_template = '{}.{:>%d}' % num_steps
for x in range(1, num_steps + 1):
print(fmt_template.format(x, '#' * x))
При num_steps = 4:
1. #
2. ##
3. ###
4.
Объяснение:
Все аргументы функции print, указанные через запятую, выводятся разделенные пробелом, отсюда и нестыковка.
Можно так попробовать:
for x in range(1, c+1):
print('{0}{1}{2}'.format(x, " " * (c - x), '#' * x))
Для c = 3:
1 #
2 ##
3###
Либо заменить запятую конкатенацией (знак +):
print(str(x) + " " * (c - x) + '#' * x)
Компьютерные словари. Словари необходимы для перевода текстов с одного языка на другой. Первые словари были созданы около 5 тысяч лет назад в Шумере и представляли собой глиняные таблички, разделенные на две части. В одной части записывалось слово на шумерском языке, а в другой — аналогичное по значению слово на другом языке, иногда с краткими пояснениями.
Современные словари построены по такому же принципу. В настоящее время существуют тысячи словарей для перевода между сотнями языков (англо-русский, немецко-французский и т. д.), причем каждый из них может содержать десятки тысяч слов. В бумажном варианте словарь представляет собой толстую книгу объемом в сотни страниц, в которой поиск нужного слова — процесс достаточно трудоемкий.
Компьютерные словари могут содержать переводы на разные языки сотен тысяч слов и словосочетаний, а также предоставляют пользователю дополнительные возможности:
•существуют многоязычные компьютерные словари, позволяющие пользователю выбрать языки и направление перевода (например, англо-русский, испано-русский и т. д.); •компьютерные словари могут кроме основного словаря общеупотребительных слов содержать десятки специализированных словарей по областям знаний (техника, медицина, информатика и др.); •компьютерные словари обеспечивают быстрый поиск словарных статей: «быстрый набор», когда в процессе набора слова возникает список похожих слов; доступ к часто используемым словам по закладкам; возможность ввода словосочетаний и др.; •компьютерные словари могут являться мультимедийными, т. е. предоставлять пользователю возможность
прослушивания слов в исполнении дикторов, носителей языка;
• онлайновые компьютерные словари в Интернете обеспечивают выбор тематического словаря и направления перевода.
Системы компьютерного перевода. Происходящая в настоящее время глобализация нашего мира приводит к необходимости обмена документами между людьми и организациями, находящимися в разных странах мира и говорящими на различных языках.
В этих условиях использование традиционной технологии перевода «вручную» тормозит развитие межнациональных контактов. Перевод многостраничной документации вручную требует длительного времени. Перевод полученного по электронной почте письма или просматриваемой в браузере Web-страницы необходимо осуществить «здесь и сейчас», и нет возможности и времени пригласить переводчика.
Системы компьютерного перевода позволяют решить эти проблемы. Они, с одной стороны переводить многостраничные документы с высокой скоростью (одна страница в одну секунду), с другой стороны, переводить Web-страницы «на лету», в режиме реального времени.
Системы компьютерного перевода осуществляют перевод текстов, основываясь на формальном «знании» языка: синтаксиса языка (правил построения предложений), правил словообразования и использовании словарей. Программа-переводчик сначала анализирует текст на одном языке, а затем конструирует этот текст на другом языке.
Онлайновые компьютерные переводчики в Интернете обеспечивают выбор тематического словаря и направления перевода. Они позволяют переводить любые тексты, набранные в окне перевода или скопированные из буфера обмена, Web-стракицы, включая гиперссылки, с сохранением исходного форматирования, а также электронные письма.
Современные системы компьютерного перевода позволяют с приемлемым качеством переводить техническую документацию, деловую переписку и другие специализированные тексты. Но на эти системы нельзя полностью полагаться. Они допускают смысловые и стилистические ошибки и неприменимы, например, для перевода художественных произведений, так как не адекватно переводить метафоры, аллегории и другие элементы художественного творчества человека и т. д.