RecyclerView в Android || Android Studio и Kotlin || Урок 26
HTML-код
- Опубликовано: 30 июл 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
Обалденное объяснение и приятная подача. Действительно, лучше, чем на платных курсах.
По мне это единственный блогер по котлин.
Сергей, предлагаю вам сделать видео на тему как вы дошли до такого уровня понимания в андроид разработке, как проходило обучение, чем пользоваться в процессе, на что обращать внимание, можно какие то личные советы. Очень интересна ваша история если вы не против поделиться!
Если бы я не умел программировать на других языках, мой мозг сломался бы так же, как в первый раз при прочтении книги по программированию на С. Объясняешь лучше чем 95% людей на русскоязычном пространстве.
После предыдущих уроков, ощущение будто перескочил с 1 класса в 11, буду пересматривать и скорее всего не однократно, Спасибо за урок!!
это нормально, понимание ннкоторых вещей придет сл временем. Ни все можно сразу понять
я эти уроки раз сто пересмотрела, и столько же переделываю проект. Но это самые лучшие уроки.
да меня это даже бесит чутка. чел может очевиднейшие вещи повторять по 10 раз "видите как просто". а потом херакс и навалил кучу кода в этом уроке. чтением тут понимания не достигнуть. приходится тупо принять это как есть
Честно скажу, сейчас это самый сложный урок по программированию на вашем канале
Ты ещё не видел обучение от Гугла по ресайклеру. Там так непонятно говорят, что нихера не понятно. Но для меня эта тема была изи
@@immortal_lnight с Адаптером трудности, лично у меня возникают)
А так в принципе несложная тема для освоения.
согласен
Дело в том, что здесь используется довольно сложный паттерн, но Сергей говорит только КАК делать, но не говорит ПОЧЕМУ именно так. А это важно для понимания происходящего, чтоб новичок не копировал как обезьянка куски кода, а мог сам их менять по необходимости.
@@Vepr12Molot есть англо каналы и я не говорю про индусов которые не обьясняют, там инфы много и говорится почему так и что это
Быть Вам Профессором МФТИ! Одного оттуда слушал. Ему отдыхать. Вы - просто педагогический Талант. Спасибо Вам большое, Сергей. Известно: Кто ясно мыслит - Тот ясно излагает...
У человека есть способность пояснять. Посмотрел до середины, многое узнал. Спасибо
очень хорошая тема, спасибо. хотелось бы ещё про Room
Отличная подача, детально передан материал. Понял моменты, которые раньше в голове не укладывались
Сергей, очередное спасибо! У тебя уже был когда-то ролик по Recycler View, но этот всё расставляет по полочкам))
Шикарный видос. Всё что смотрел до этого так хорошо нигде не объясняли. Однозначно лайк
Буду сильно рекомендовать Ваш замечательный курс всем знакомым. Очень толково для начинающего. Благодарю!
Важный и полезный урок, спасибо Сергей!
Очень хорошо, что подробно проговариваете и объясняете свои действия и теоретическую базу построения. Благодарю за Ваш нелёгкий труд.
я посмотрела кучу видео и прочитала несколько статей по этой теме, но окончательно все стало понятно только после вашего видео, спасибо!
Спасибо за урок. Еще благодарен всем, кто поделился своим опытом, рассказав, что им было тяжело понять эту тему. В итоге, это дает стимул для продолжения. Понимаешь, что ты не один так тормозишь и что нужно продолжать.
Вот я и дошел до урока, тема которого мне давалась мегасложно. Но не у тебя)) Спасибо огромное! Разобрался :) Надо практиковаться
Большое спасибо! Это лучший курс по Android!
Как раз недавно проходила это по книге, закрепила результат. Всё как всегда четко и понятно. Спасибо!
подскажите что за книга плз
Спасибо вам большое за урок! Так вовремя 🤗
Большое спасибо за видео! Очень подробное объяснение каждой строчки )
Спасибо! Только после вас понял что за чем следует, до этого не как не укладывалось в голове. Много видео пересмотрел и книгу читал.
Ого уже 26 урок по котлину =) Блин , Лайк! Я начал с Java , но собираюсь все пересмотреть ! =)
Еще бы урок, как можно долгим удержанием выделять нужные элементы для удаления, например, ну и сделать отслеживание, и рисовать кнопки меню бара для удаления выделенных элементов. Нигде не ютубе нет подобного урока
Спасибо тебе большое, делай пожалуйста больше видео по Котлин, для меня ты лучший обозреватель, по твоим урокам учусь и кое что получается ))))
Видос шик просто, спасибо тебе, сейчас перехожу на котлин, очень помог
посмотрю чуть позже но лайк поставлю сейчас. наконец-то началась движуха
спасибо тебе братишка за твои уроки, после react и flutter кинули на android kotlin, ты меня спасаешь
Большое спасибо! Пошагово и доходчиво.
Привет! Огромное спасибо! Отличного настроения!
Спасибо.Просто человеческое спасибо!
Как же счастлива, что нашла ваш канал. Спасибо огромное за труд. Благодаря вам, смогла разобраться с ресайклерами наконец-то.
Спасибо! Как раз была необходимость!
Спасибо вам за ваши старания!
Сложная тема. Большое спасибо за объяснение!!!!
Лайк и коммент не глядя. Жду видео с Unity)
Спасибо Огромное!!! Удачи!!!
Дуже дякую. Хотілось би ще в такому ж форматі про Retrofit
Спасибо, помогло разобраться с RecyclerView
Программированием никогда не занимался, много уроков попробовал и наткнулся на Neco, который наконец-то смог мне что-то объяснить, и начал смотреть. Но, честно признаться, сегодня было особенно тяжело осознавать степень своей тупости. Даже не столько при просмотре этого урока, сколько во время прочтения комментариев под ним. В предыдущих 25-ти уроках я понимал хоть что-то, хоть как-то, очень примерно и в целом, и даже в чем-то импровизировал на практике. А сегодня не понял абсолютно ничего, хотя смотрю этот один ролик уже несколько часов с постоянными перемотками назад, и сейчас только на 29-й минуте. Видимо, на этом придется заканчивать. Автору большая благодарность за старания и удачи в делах, Вы хороший учитель. Спасибо
Что бы научиться программировать нужно понять что некоторые вещи не нужно сразу пытатся понять, это придет со временем. Это как собирать пазлы. иногда жобавляешь новый фрагмент и понимаешь какая это часть картинки а иногда пока несколько вместе не соберешь непоймеш. Аот и тут так же. Данную тему просто посттрайся пройти и иди дальше, после будут примеры и ты с этим адаптером еще раз столкнешься и каждый раз все понятнее будет. Ну и я на днях запишу видео и разжую еще подробнее эту тему так как многие еа этой теме мотивацию теряют
вам просто нужно получить реальный опыт, тогда все станет на места в голове! ни у кого не получается понять все и сразу
Спасибо за уроки!
Благодарю за урок
Спасибо бро, так держать. ✊
Спасибо! То, что нужно!
Отличное объяснение !!!
Автор топ! Cпасибо за твой труд!
Хорошо объясняет. Старается. Молодец. Жаль что не для всякого уровня 🎚️ подходит 😅
Спасибо за помощь, помогли лабу сдать))
Красивый код, спасибо :)
Не могу понять, застрял на настройке rcView. Куда то подевался layoutMananger, Есть Params,Mode, Transition, но Manager никак не вызывается, может его заменили в новых версиях? И вроде по логике подходит layoutDirection, но там проблемы с аргументами начинаются.
Сам ковырялся в инете часа два, а оказывается просто когда мы давали идентификатор для ресайклвью "rcView", мы его дали не элементу ресайклвью, а констрэйн лояуту и вот у него как раз таки нет "layoutManager". У кого тоже такая проблема, просто проверьте в разметке "activity_main.xml" каким элементам, какие идентификаторы вы дали, и скорее всего там будет ошибка.
Это самый крутой канал, всё понятно объясняют, спасибо большое автору 🥰Очень многое поняла )
Большое спасибо!
Спасибки за урок! Будет круто ещё про ООП послушать
@Vlad Kuzmuk в этом видео уже применяются принципы ООП)
@@dvasfhbfgb так они много где применяются в уроках)
@@st.libertos это да, просто мне кажется особо нет смысла рассказывать конкретно про ООП в рамках андроидов) Как идёт обучение? Нашёл работу?)
Респект за использование binding в recycler view, а то все используют в своих видео синтетики до сих пор из-за того, что лень писать лишний код.
Посмотрел второй раз.
Объясняешь хорошо, но эта информация плохо ложится на низкую базу, хотя повторный просмотр помог прояснить много моментов. В этот раз более понятно, чем в первый раз.
Нужно больше практики. Нужно найти где-то задачи для самостоятельного решения.
Есть много таких моментов в программировании когда понимание придет современем, не все нужно пытатся понять сразу.
Спасибо, хорошо обьяснил, еще бы заполнять его из интернета с помощью ретрофита или что-то подобного)
Да, это тоже планирую показать
Спасибо вам большое
Обалдеть. Я присоединяюсь к людям ниже и тоже подтвержу что это самый тяжелый урок из всех. Я едва успевал кодить вслед за неко. Правда это один из тех примеров когда идет много практики но мало теории. Я конечно понимаю принцип работы, но следовало бы рассказать подробнее что это за объект RecyclerView и зачем его можно применить т.к я впервые вижу его в действии. Урок придется пересмотреть еще раз т.к очень много информации не усваивается так быстро.
Ну а в остальном спасибо. Получилось с первой попытки. Заодно еще и обновил программу и теперь у меня проект поддерживает более новые версии сдк и котлина.
Правда я досих пор почему то не вижу автозаполнения шаблона когда добавляю байдинг класс в грэдл. Мне все приходится писать вручную. Не знаю почему.
Лайк не глядя
Спасибо за урок, учил по книге, ничего не было понятно, перечитывал пересматривал все 10 раз, тут с 1 захода все по полочкам..) Если еще покажете как соединить список с базой данных, Room, будет прямо шикарно!)
А что за книга?
@@buddaset4226 android:Программирование для профессионалов (4-е издание), big nerd ranch
Даа room нам очень нужен
Отличный материал. Было бы еще лучше. Если в следующих уроках было немного по подробней рассказано про параметры в методах. Например что такое parent и его тип viewgroup и почему именно он нужен,(про тип) а не какой-либо другой. Тот же attachToRoot и что будет если его не указать или указать как true. Для новичков - думаю отличная практика преподавания -- объяснять каждую строчку(читать по коду) и что это значит. А так да, одно из лучших видео объяснения работы ресайклер вью в рунете.
Спасибо, мне нравиться объяснять подробно каждую строчку но время летит так быстро что нехватает время закончить или урок слишком длинный получаеться и народ жалуется.
@Neco Ru на 29 минуте совсем не понятно какие parent? Зачем они? Что это вообще такое и зачем нужно? Лучше 4 урока по 30 минут по одной теме, чем 1 на час и оставить много вопросов) Спасибо за труд, но придется пересматривать. Много чего не понятно
@@NecoRuChannel Видимо вам нужно делать 2 варианта одной темы. Одна для тех, у кого нет терпения смотреть подробные объяснения. Вторая для новичков, которые ничего не знают о программировании. Новички не поймут, если не будут подробные объяснения.
Если новичок не понимает почему пишет данный код, он не сможет это запомнить чтобы применять в дальнейшем. Выучить наизусть весь код тоже не вариант.
Но если вы не планировали делать видео для новичков, то тогда все ок.
@@NecoRuChannelУ Вас не может быть слишком длинных уроков! Ваш характер не позволяет этого сделать. Все уроки замечательны. Я понимаю, что длительность урока определяется педагогическими задачами, а не жалобами учеников...
Добрый день, было бы интересно в Вашем исполнение про фоновую работу без AsyncTask, которые ныне deprecated.
Спасибо большое
в новой версий ас , надо писать : buildFeatures{viewBinding = true}
До этого урока все видео смотрел на 1.5Х, тут так не получилось.
Спасибо за урок!
По сути речь идёт про самый обычный динамический список Неко ты уже показывал такое когда рассказывал про Firebase из тех уроков я за 1 день смог сделать простой мессенджер, создание лобби с динамическим обновлением, и ещё несколько других динамических листов (Тогда я только только учился), этому списку можно кроме всего сделать приличную анимацию, и в Unity можно реализовать такой-же свой собственный UI интерфейс т.к префаб может выступать как экземпляр объекта (по сути так и есть)
Кстати, в каком-то из уроков видел, как ты во внутреннем классе создаешь переменные из внешнего(класса оболочки), чтобы эти переменные(из внешнего) класса можно было использовать во внутреннем, эта проблема решается проще - нужно ко внутреннему классу добавить приставку inner
Посмотрел видео, перед глазами старый телевизор с белыми точками на экране, и он шипит. А самое интересное, в голове пусто. Думаю, я не один такой.
Спасибо!
Отличный урок! Покажи, пожалуйста, как удалять свайпом элементы из списка. Как слушателеи событий правильно использовать.
про свайп уже есть на уроках "блокнот"
Со скрипом, но процентов 80 я понял. Попробую поэкспериментировать с классом File и этой штукой. Может выйдет вызвать список файлов)
Первая тема, которая вызвала затруднение при периходе на котлин, хотя на джава тоже было сложновато писать этот recyclerView
Если параллельно не изучать ООП, то очень сложно для восприятия. Но в любом случае огромное спасибо за доступное изложение ))) Чувствую, что буду разбирать приложение на примитивы и пытаться понять, для чего каждая строчка кода.
Эта часть по началу всем кажется сложной, не переживай, понятие ооп даже если учить не будешь тоже придет постепенно
Без знаний о наследовании и полиморфизме очень трудно понять что там происходит, благо до просмотра видео я это знал, так бы точно нихрена не понял) Но надо в среде разработки поэксперементировать.
Посоветуйте, что почитать пожалуйста, чтобы было легче понять этот урок.
@@ILesom Head First Kotlin. Доступным языком на понятных примерах все объясняется.
@@tolkoviy да, изучил. Еще по андроиду есть хорошая - Head First Android Development, 3-е издание, она вроде еще не переведена на русский, там почти 1,5 тысячи страниц, но много картинок и читается легко.
Plant1 - зачетный план
для особо внимательных при втором нажатии на кнопку Add plant добавляется ганджа
тихий ужас...сколько много всего нового,как это все запомнить Оо раз стописят надо просмотреть пожалуй)
Нет не переживай все это будет повторяться, просто нужно привыкнуть)
@@NecoRuChannel спасибо, успокоили. Будем набивать руку)
Большое спасибо, очень подробно и увлекательно объясняете.
Было бы восхитительно, если Вы брали темы для последующих уроков из курса Android Fundamentals ruclips.net/p/PLjLCGE4bVpHCJvtGpEVl-4IYGHB1A8FCc и объясняли их простым смертным, успехов вам!)
что то я запутался как правильно запускать этот binding. viewBinding {enabled = true} или buildFeatures {viewBinding true} работает в обоих случаях.
Nice videos BROOO
Единственный урок, который не понял, даже посмотрев дважды :-(
👍👍👍
Спасибо огромное. Эх эще бы найти кто мог бы разъяснить по javafx на котлине было бы круто..
Здравствуйте! Прежде всего, выражаю Вам огромную благодарность за подробный разбор столь сложной темы. Подскажите, есть ли на вашем канале продолжение темы "Recycler view", в которой бы разбирались свайпы, пагинация и прочие действия с ячейками?
Спасибо большое! Пока нет, собираюсь добавить, а про свайп кажется был но не помню где😅
Лучшее объяснение recyclerview.
А если в recyclerview нужно произвести определенные вычисления, например проверять картинку по специальному алгоритму. Из какого места лучше вызвать данную функцию?
за каждый элемент из списка отвечает свой ViewHolder класс по этому в этом классе и делаем вычисления для элементов
Сделайте гайд как использовать RecyclerView во Fragment'ах
Подскажите пожалуйста а как повесить setOnClickListener на каждый элемент RecyclerView? Хочу сделать так чтоб при нажатии на элемент открывался другой фрагмент ....
Спасибо!
можно также подробно и понятно про то как делать элементы этого RecyclerView . кликабельными с переходом на новые активити ?
Очень полезная тема, единственное что меня не много вступор загоняет "надувает"
GRATE
здравствуйте, как мне сделать импорт import androidx.recyclerview.widget.LinearLayoutManager уже все что мог попробовал, приложение запускается но картинки не добавляются
Урок очень хороший ! Как сделать , чтоб в массив imageIdList= listOf () брался автоматически пути к файлам изображения ?
Здравствуйте. А можно ли как-то сделать так, чтобы во вновь создаваемом проекте сразу viewBinding сразу был прописан? Спасибо.
BOOM
добрый день
чтобы пользователю появлялся диалог хочет он удалить элемент или нет
хочу использовать в вашем recyclerView
MaterialAlertDialogBuilder(requireContext())
а оно ругается "No value passed for parameter 'provider' " в requireContext()
проблема, точнее что конкретно требуется (this, context) не подходят
Здравствуйте!
Начал по тихоньку изучать этот мир. Мир создания приложений на андройде ).
Спасибо Вам за ваши труды.
Подскажите, что такое патченный апк? И как это делается?
Еще вопрос:
Вот я создал объект (data class), одно из полей объекта, это url. Но я карточки создаю автоматически через recyclerView. Как мне повесить слушатель нажатий на кнопку или на CardView c конкретно этим url из этого объекта?
То есть вот я объект распаковываю, нахожу поле, например url, и мне его надо не просто засунуть в TextView, а создать слушатель нажатий.
Должно работать так:
я получаю, допустим, 4 cardView, информация на всех cardView разная (логично) и при нажатии на каждую карточку я должен переходить на отдельную вкладку, которая будет раскрывать сущность именно этой карточки.
Если у вас при нажатии на кнопку ничего не появляется, можете попробовать заменить ширину и высоту у всех элементов (кроме картинки и текста) на wrap_content
Хотелось бы урок по Volley, mysql, recyclerview.
Как вызвать функцию всего списка в main activity?