RecyclerView в Android || Android Studio и Kotlin || Урок 26
Вставка
- Опубліковано 25 лип 2024
- На этом уроке узнаем как создаются списки с помощью RecyclerView в Android. Узнаем что такое RecyclerView Adapter и как он работает.
Первая часть курса "Доска объявлений" уже доступна на UDEMY: www.udemy.com/course/android-...
0:00 RecyclerView (Теория).
5:03 Создание проекта, добавляем RecyclerView, подключаем ViewBinding в build.gradle.
9:00 Создаем data class для хранения данных одного растения.
10:21 Добавлеме картинки в drawable.
12:00 Создаем RecyclerView.Adapter (PlantAdapter) (часть 1).
17:16 Создаем шаблон(разметку) для одного илемента в списке (plant_item).
22:13 Создаем RecyclerView.Adapter (PlantAdapter) (часть 2).
38:06 Подключаем адаптер к RecyclerView и настраваем RecyclerView
42:09 Меняем цвет Toolbar и Statusbar в theme
43:27 Добавляем кнопку (Button) и слушатель нажатий с добавлением одного растения в список
50:14 Повторяем теорию о работе RecyclerView
►Все уроки и тут: neco-desarrollo.es/d3im
Этот курс предназначен для полных начинающих кто в обще незнаком с программированием и хочет освоить разработку мобильных приложений под операционную систему Android. заходи на мой сайт там я буду оставлять код к урокам!
✅ Уроки Android + ESP32 & Arduino: neco-desarrollo.es/android-ar...
✅ Все уроки по Kotlin тут: neco-desarrollo.es/exyg
✅ Курс "Gps Tracker": neco-desarrollo.es/2022/11/gp...
►Скачать Android Studio developer.android.com/studio?...
В связи с ситуацией в мире и отключения рекламы на канале в некоторых странах, канал выживает только благодаря вашей поддержке, всем спасибо за поддержку!
ПОДДЕРЖАТЬ КАНАЛ МОЖНО ТУТ:
✅ Платные курсы: neco-desarrollo.es/home_ru
✅ЮMoney: 4100117811702825
✅PayPal: necodesarrollo@gmail.com
✅ Стать спонсором канала и получить доступ к курсу: / @necoruchannel
ПО ВОПРОСАМ ПРИОБРЕТЕНИЯ КУРСОВ ПИШИТЕ СЮДА:
✅Моя почта: necodesarrollo@gmail.com
✅Телеграм: @neco_desarrollo
✅ Платные курсы: neco-desarrollo.es/home_ru
★ ★ ★ ★ ★ ★ ▼Поддержка канала▼★ ★ ★ ★ ★ ★ ★
МОИ КУРСЫ НА UDEMY:
✅ Курс Gps Tracker на Udemy:
✅ Курс Shopping List на Udemy: www.udemy.com/course/room-per...
✅ Курс Fitness app на Udemy: www.udemy.com/course/android-...
✅ Курс Доска объявлений на Udemy часть 1: www.udemy.com/course/android-...
✅ Курс Доска объявлений на Udemy часть 2: www.udemy.com/course/android-...
✅ Курс Доска объявлений на Udemy часть 3: www.udemy.com/course/android-...
✅ Курс Доска объявлений на Udemy часть 4: www.udemy.com/course/android-...
★ ★ ★ ★ ★ ★ ▼Соц.сети и WEB▼★ ★ ★ ★ ★ ★ ★
✅Яндекс Дзен: zen.yandex.ru/id/62ac3bb6e692...
✅Моя веб страница: neco-desarrollo.es
✅Instagram: @20neco20
✅Instagram: @neco_android_dev
✅VK: public189519480
✅Телеграм: t.me/androidstudioneco
✅Моя почта: necodesarrollo@gmail.com
#AndroidStudio #Kotlin #Android
По мне это единственный блогер по котлин.
Честно скажу, сейчас это самый сложный урок по программированию на вашем канале
Ты ещё не видел обучение от Гугла по ресайклеру. Там так непонятно говорят, что нихера не понятно. Но для меня эта тема была изи
@@immortal_lnight с Адаптером трудности, лично у меня возникают)
А так в принципе несложная тема для освоения.
согласен
Дело в том, что здесь используется довольно сложный паттерн, но Сергей говорит только КАК делать, но не говорит ПОЧЕМУ именно так. А это важно для понимания происходящего, чтоб новичок не копировал как обезьянка куски кода, а мог сам их менять по необходимости.
@@Vepr12Molot есть англо каналы и я не говорю про индусов которые не обьясняют, там инфы много и говорится почему так и что это
После предыдущих уроков, ощущение будто перескочил с 1 класса в 11, буду пересматривать и скорее всего не однократно, Спасибо за урок!!
это нормально, понимание ннкоторых вещей придет сл временем. Ни все можно сразу понять
я эти уроки раз сто пересмотрела, и столько же переделываю проект. Но это самые лучшие уроки.
да меня это даже бесит чутка. чел может очевиднейшие вещи повторять по 10 раз "видите как просто". а потом херакс и навалил кучу кода в этом уроке. чтением тут понимания не достигнуть. приходится тупо принять это как есть
Если бы я не умел программировать на других языках, мой мозг сломался бы так же, как в первый раз при прочтении книги по программированию на С. Объясняешь лучше чем 95% людей на русскоязычном пространстве.
Сергей, предлагаю вам сделать видео на тему как вы дошли до такого уровня понимания в андроид разработке, как проходило обучение, чем пользоваться в процессе, на что обращать внимание, можно какие то личные советы. Очень интересна ваша история если вы не против поделиться!
У человека есть способность пояснять. Посмотрел до середины, многое узнал. Спасибо
Быть Вам Профессором МФТИ! Одного оттуда слушал. Ему отдыхать. Вы - просто педагогический Талант. Спасибо Вам большое, Сергей. Известно: Кто ясно мыслит - Тот ясно излагает...
Отличная подача, детально передан материал. Понял моменты, которые раньше в голове не укладывались
Шикарный видос. Всё что смотрел до этого так хорошо нигде не объясняли. Однозначно лайк
Сергей, очередное спасибо! У тебя уже был когда-то ролик по Recycler View, но этот всё расставляет по полочкам))
очень хорошая тема, спасибо. хотелось бы ещё про Room
Буду сильно рекомендовать Ваш замечательный курс всем знакомым. Очень толково для начинающего. Благодарю!
Спасибо за урок. Еще благодарен всем, кто поделился своим опытом, рассказав, что им было тяжело понять эту тему. В итоге, это дает стимул для продолжения. Понимаешь, что ты не один так тормозишь и что нужно продолжать.
я посмотрела кучу видео и прочитала несколько статей по этой теме, но окончательно все стало понятно только после вашего видео, спасибо!
Очень хорошо, что подробно проговариваете и объясняете свои действия и теоретическую базу построения. Благодарю за Ваш нелёгкий труд.
Важный и полезный урок, спасибо Сергей!
Большое спасибо! Это лучший курс по Android!
Вот я и дошел до урока, тема которого мне давалась мегасложно. Но не у тебя)) Спасибо огромное! Разобрался :) Надо практиковаться
Как раз недавно проходила это по книге, закрепила результат. Всё как всегда четко и понятно. Спасибо!
подскажите что за книга плз
Спасибо вам большое за урок! Так вовремя 🤗
Большое спасибо за видео! Очень подробное объяснение каждой строчки )
Спасибо! Только после вас понял что за чем следует, до этого не как не укладывалось в голове. Много видео пересмотрел и книгу читал.
Ого уже 26 урок по котлину =) Блин , Лайк! Я начал с Java , но собираюсь все пересмотреть ! =)
Спасибо тебе большое, делай пожалуйста больше видео по Котлин, для меня ты лучший обозреватель, по твоим урокам учусь и кое что получается ))))
Видос шик просто, спасибо тебе, сейчас перехожу на котлин, очень помог
Привет! Огромное спасибо! Отличного настроения!
Большое спасибо! Пошагово и доходчиво.
посмотрю чуть позже но лайк поставлю сейчас. наконец-то началась движуха
спасибо тебе братишка за твои уроки, после react и flutter кинули на android kotlin, ты меня спасаешь
Спасибо.Просто человеческое спасибо!
Спасибо! Как раз была необходимость!
Еще бы урок, как можно долгим удержанием выделять нужные элементы для удаления, например, ну и сделать отслеживание, и рисовать кнопки меню бара для удаления выделенных элементов. Нигде не ютубе нет подобного урока
Дуже дякую. Хотілось би ще в такому ж форматі про Retrofit
Лайк и коммент не глядя. Жду видео с Unity)
Сложная тема. Большое спасибо за объяснение!!!!
Спасибо вам за ваши старания!
Спасибо Огромное!!! Удачи!!!
Как же счастлива, что нашла ваш канал. Спасибо огромное за труд. Благодаря вам, смогла разобраться с ресайклерами наконец-то.
Благодарю за урок
Спасибо за уроки!
Спасибо, помогло разобраться с RecyclerView
Спасибо! То, что нужно!
Отличное объяснение !!!
Спасибо бро, так держать. ✊
Красивый код, спасибо :)
Спасибо за помощь, помогли лабу сдать))
Автор топ! Cпасибо за твой труд!
Не могу понять, застрял на настройке rcView. Куда то подевался layoutMananger, Есть Params,Mode, Transition, но Manager никак не вызывается, может его заменили в новых версиях? И вроде по логике подходит layoutDirection, но там проблемы с аргументами начинаются.
Сам ковырялся в инете часа два, а оказывается просто когда мы давали идентификатор для ресайклвью "rcView", мы его дали не элементу ресайклвью, а констрэйн лояуту и вот у него как раз таки нет "layoutManager". У кого тоже такая проблема, просто проверьте в разметке "activity_main.xml" каким элементам, какие идентификаторы вы дали, и скорее всего там будет ошибка.
Спасибки за урок! Будет круто ещё про ООП послушать
@Vlad Kuzmuk в этом видео уже применяются принципы ООП)
@@dvasfhbfgb так они много где применяются в уроках)
@@st.libertos это да, просто мне кажется особо нет смысла рассказывать конкретно про ООП в рамках андроидов) Как идёт обучение? Нашёл работу?)
Респект за использование binding в recycler view, а то все используют в своих видео синтетики до сих пор из-за того, что лень писать лишний код.
Спасибо вам большое
Добрый день, было бы интересно в Вашем исполнение про фоновую работу без AsyncTask, которые ныне deprecated.
Лайк не глядя
Хорошо объясняет. Старается. Молодец. Жаль что не для всякого уровня 🎚️ подходит 😅
Спасибо большое
Это самый крутой канал, всё понятно объясняют, спасибо большое автору 🥰Очень многое поняла )
Большое спасибо!
Спасибо, хорошо обьяснил, еще бы заполнять его из интернета с помощью ретрофита или что-то подобного)
Да, это тоже планирую показать
Даа room нам очень нужен
Спасибо!
По сути речь идёт про самый обычный динамический список Неко ты уже показывал такое когда рассказывал про Firebase из тех уроков я за 1 день смог сделать простой мессенджер, создание лобби с динамическим обновлением, и ещё несколько других динамических листов (Тогда я только только учился), этому списку можно кроме всего сделать приличную анимацию, и в Unity можно реализовать такой-же свой собственный UI интерфейс т.к префаб может выступать как экземпляр объекта (по сути так и есть)
Обалдеть. Я присоединяюсь к людям ниже и тоже подтвержу что это самый тяжелый урок из всех. Я едва успевал кодить вслед за неко. Правда это один из тех примеров когда идет много практики но мало теории. Я конечно понимаю принцип работы, но следовало бы рассказать подробнее что это за объект RecyclerView и зачем его можно применить т.к я впервые вижу его в действии. Урок придется пересмотреть еще раз т.к очень много информации не усваивается так быстро.
Ну а в остальном спасибо. Получилось с первой попытки. Заодно еще и обновил программу и теперь у меня проект поддерживает более новые версии сдк и котлина.
Правда я досих пор почему то не вижу автозаполнения шаблона когда добавляю байдинг класс в грэдл. Мне все приходится писать вручную. Не знаю почему.
Кстати, в каком-то из уроков видел, как ты во внутреннем классе создаешь переменные из внешнего(класса оболочки), чтобы эти переменные(из внешнего) класса можно было использовать во внутреннем, эта проблема решается проще - нужно ко внутреннему классу добавить приставку inner
Программированием никогда не занимался, много уроков попробовал и наткнулся на Neco, который наконец-то смог мне что-то объяснить, и начал смотреть. Но, честно признаться, сегодня было особенно тяжело осознавать степень своей тупости. Даже не столько при просмотре этого урока, сколько во время прочтения комментариев под ним. В предыдущих 25-ти уроках я понимал хоть что-то, хоть как-то, очень примерно и в целом, и даже в чем-то импровизировал на практике. А сегодня не понял абсолютно ничего, хотя смотрю этот один ролик уже несколько часов с постоянными перемотками назад, и сейчас только на 29-й минуте. Видимо, на этом придется заканчивать. Автору большая благодарность за старания и удачи в делах, Вы хороший учитель. Спасибо
Что бы научиться программировать нужно понять что некоторые вещи не нужно сразу пытатся понять, это придет со временем. Это как собирать пазлы. иногда жобавляешь новый фрагмент и понимаешь какая это часть картинки а иногда пока несколько вместе не соберешь непоймеш. Аот и тут так же. Данную тему просто посттрайся пройти и иди дальше, после будут примеры и ты с этим адаптером еще раз столкнешься и каждый раз все понятнее будет. Ну и я на днях запишу видео и разжую еще подробнее эту тему так как многие еа этой теме мотивацию теряют
вам просто нужно получить реальный опыт, тогда все станет на места в голове! ни у кого не получается понять все и сразу
Посмотрел второй раз.
Объясняешь хорошо, но эта информация плохо ложится на низкую базу, хотя повторный просмотр помог прояснить много моментов. В этот раз более понятно, чем в первый раз.
Нужно больше практики. Нужно найти где-то задачи для самостоятельного решения.
Есть много таких моментов в программировании когда понимание придет современем, не все нужно пытатся понять сразу.
До этого урока все видео смотрел на 1.5Х, тут так не получилось.
Спасибо за урок!
Спасибо!
можно также подробно и понятно про то как делать элементы этого RecyclerView . кликабельными с переходом на новые активити ?
Урок очень хороший ! Как сделать , чтоб в массив imageIdList= listOf () брался автоматически пути к файлам изображения ?
Большое спасибо, очень подробно и увлекательно объясняете.
Было бы восхитительно, если Вы брали темы для последующих уроков из курса Android Fundamentals ua-cam.com/play/PLjLCGE4bVpHCJvtGpEVl-4IYGHB1A8FCc.html и объясняли их простым смертным, успехов вам!)
Первая тема, которая вызвала затруднение при периходе на котлин, хотя на джава тоже было сложновато писать этот recyclerView
Отличный урок! Покажи, пожалуйста, как удалять свайпом элементы из списка. Как слушателеи событий правильно использовать.
про свайп уже есть на уроках "блокнот"
Отличный материал. Было бы еще лучше. Если в следующих уроках было немного по подробней рассказано про параметры в методах. Например что такое parent и его тип viewgroup и почему именно он нужен,(про тип) а не какой-либо другой. Тот же attachToRoot и что будет если его не указать или указать как true. Для новичков - думаю отличная практика преподавания -- объяснять каждую строчку(читать по коду) и что это значит. А так да, одно из лучших видео объяснения работы ресайклер вью в рунете.
Спасибо, мне нравиться объяснять подробно каждую строчку но время летит так быстро что нехватает время закончить или урок слишком длинный получаеться и народ жалуется.
@Neco Ru на 29 минуте совсем не понятно какие parent? Зачем они? Что это вообще такое и зачем нужно? Лучше 4 урока по 30 минут по одной теме, чем 1 на час и оставить много вопросов) Спасибо за труд, но придется пересматривать. Много чего не понятно
@@NecoRuChannel Видимо вам нужно делать 2 варианта одной темы. Одна для тех, у кого нет терпения смотреть подробные объяснения. Вторая для новичков, которые ничего не знают о программировании. Новички не поймут, если не будут подробные объяснения.
Если новичок не понимает почему пишет данный код, он не сможет это запомнить чтобы применять в дальнейшем. Выучить наизусть весь код тоже не вариант.
Но если вы не планировали делать видео для новичков, то тогда все ок.
@@NecoRuChannelУ Вас не может быть слишком длинных уроков! Ваш характер не позволяет этого сделать. Все уроки замечательны. Я понимаю, что длительность урока определяется педагогическими задачами, а не жалобами учеников...
что то я запутался как правильно запускать этот binding. viewBinding {enabled = true} или buildFeatures {viewBinding true} работает в обоих случаях.
Со скрипом, но процентов 80 я понял. Попробую поэкспериментировать с классом File и этой штукой. Может выйдет вызвать список файлов)
Здравствуйте! Прежде всего, выражаю Вам огромную благодарность за подробный разбор столь сложной темы. Подскажите, есть ли на вашем канале продолжение темы "Recycler view", в которой бы разбирались свайпы, пагинация и прочие действия с ячейками?
Спасибо большое! Пока нет, собираюсь добавить, а про свайп кажется был но не помню где😅
buildFeatures {
viewBinding true
} работает в MainActivity , при попытки написать val binding = PlantItemBinding.bind(item), он его не видит PlantItem просто нет в списке, или что-то вырезали с видео или в чем причина, 2 раза пытался написать с нуля код и 2 раза не видит PlantItemBinding
Подскажите пожалуйста а как повесить setOnClickListener на каждый элемент RecyclerView? Хочу сделать так чтоб при нажатии на элемент открывался другой фрагмент ....
Спасибо за урок, учил по книге, ничего не было понятно, перечитывал пересматривал все 10 раз, тут с 1 захода все по полочкам..) Если еще покажете как соединить список с базой данных, Room, будет прямо шикарно!)
А что за книга?
@@buddaset4226 android:Программирование для профессионалов (4-е издание), big nerd ranch
для особо внимательных при втором нажатии на кнопку Add plant добавляется ганджа
Здравствуйте!
Начал по тихоньку изучать этот мир. Мир создания приложений на андройде ).
Спасибо Вам за ваши труды.
Подскажите, что такое патченный апк? И как это делается?
в новой версий ас , надо писать : buildFeatures{viewBinding = true}
Здравствуйте. А можно ли как-то сделать так, чтобы во вновь создаваемом проекте сразу viewBinding сразу был прописан? Спасибо.
Будет видео про обработку нажатия на элемент RecyclerView?
добрый день
чтобы пользователю появлялся диалог хочет он удалить элемент или нет
хочу использовать в вашем recyclerView
MaterialAlertDialogBuilder(requireContext())
а оно ругается "No value passed for parameter 'provider' " в requireContext()
проблема, точнее что конкретно требуется (this, context) не подходят
Еще вопрос:
Вот я создал объект (data class), одно из полей объекта, это url. Но я карточки создаю автоматически через recyclerView. Как мне повесить слушатель нажатий на кнопку или на CardView c конкретно этим url из этого объекта?
То есть вот я объект распаковываю, нахожу поле, например url, и мне его надо не просто засунуть в TextView, а создать слушатель нажатий.
Должно работать так:
я получаю, допустим, 4 cardView, информация на всех cardView разная (логично) и при нажатии на каждую карточку я должен переходить на отдельную вкладку, которая будет раскрывать сущность именно этой карточки.
Если параллельно не изучать ООП, то очень сложно для восприятия. Но в любом случае огромное спасибо за доступное изложение ))) Чувствую, что буду разбирать приложение на примитивы и пытаться понять, для чего каждая строчка кода.
Эта часть по началу всем кажется сложной, не переживай, понятие ооп даже если учить не будешь тоже придет постепенно
Без знаний о наследовании и полиморфизме очень трудно понять что там происходит, благо до просмотра видео я это знал, так бы точно нихрена не понял) Но надо в среде разработки поэксперементировать.
Посоветуйте, что почитать пожалуйста, чтобы было легче понять этот урок.
@@ILesom Head First Kotlin. Доступным языком на понятных примерах все объясняется.
@@tolkoviy да, изучил. Еще по андроиду есть хорошая - Head First Android Development, 3-е издание, она вроде еще не переведена на русский, там почти 1,5 тысячи страниц, но много картинок и читается легко.
Спасибо огромное. Эх эще бы найти кто мог бы разъяснить по javafx на котлине было бы круто..
Здравствуйте, будут ли уроки по тестированию( robolectric, espresso)?
Добрый день. Подскажите, как сделать, чтобы последний добавленный элемент оказывался самым верхним?
здравствуйте, как мне сделать импорт import androidx.recyclerview.widget.LinearLayoutManager уже все что мог попробовал, приложение запускается но картинки не добавляются
Nice videos BROOO
Очень полезная тема, единственное что меня не много вступор загоняет "надувает"
Лучшее объяснение recyclerview.
А если в recyclerview нужно произвести определенные вычисления, например проверять картинку по специальному алгоритму. Из какого места лучше вызвать данную функцию?
за каждый элемент из списка отвечает свой ViewHolder класс по этому в этом классе и делаем вычисления для элементов
Как вызвать функцию всего списка в main activity?
Сделайте гайд как использовать RecyclerView во Fragment'ах
как тоже самое сделать только с firebase datatime? очень нужна информация такая
Здравствуйте, спасибо большое за уроки 👍 Все очень доступно и разложено по полочкам.
И хотел ещё задать вопрос.
Нужно в RV использовать две разные разметки(активный и не активный элемент).
Как использовать необходимую разметку, я понял (проверяю viewType, и получаю нужную)
Но чтобы вставить необходимый текст в элемент или картинку, используется класс Holder.
И там прописывается на прямую:
...1razmetkaBinding.bind(view)
Единственное решение, которое нашел, это создание второго класса Holder, для второй разметки.
Это правильное решение?
Здравствуйте! Есть ли возможность как-то пошагово посмотреть как код выполняется? То есть в режиме отладки, на виртуальном устройстве?
Добрый вечер. Появился такой вопрос. Во многих уроках других блогеров, используется ListView+Adapter для сознания построчного списка. Но так же в некоторых уроках, натыкался, где говорят что listview использовать уже не стоит, даже в самых простых ситуациях, что лучше использовать recycleview.
Что из этого правда?
👍👍👍
если я пересмотрел уже раза 3 и не понял некоторые моменты например с передачей параметров в адаптере то стоит идти дальше или разбирать это до конца пока не пойму?
Иди дальше. Так как будем после все это использовать. Останавливаться на одном месте не самый лучший вариант так как можешь мотивацию потерять. Лучше после вернуться