Это видео меня просто спасло. Я правда искал как сделать чтобы кнопка внутри списка работала, а не просто нажатие на элемент, но я сам додумал как это сделать. На английских видео ничего не понятно о том как это работает.
Спасибо большое. Я вот почти прошел курс для начинающих, начал делать свое приложение и застопорился на этой теме. Начал искать информацию на ютубе и сразу же мой любимый учитель )))
Спасибо за уроки, все очень доступно и понятно! А есть в планах рассказать про шаблоны, например про MVVM? Было бы здорово с Вашим умением объяснения сложных вещей!...
Отлично. Положу в закладки. Вернусь к урокам, когда пройду другой свой курс. Итого 7 месяцев изучения позади, еще чуть-чуть, и я стану маэстро андроида!
Neco,благодарю вас за ваши курсы. Есть такой вопрос,зачем использовать интерфейс как посредника,если вполне можно обойтись без него,просто передав в адаптер объект нашего активити и в слушателе вызывать через этот объект нужеый нам метод?!
А вот такой вопрос а вы вчера подсказали что можно программно получить размер экрана и задать пропорции. Но ведь программно мы получаем размер в пикселях а как потом это перевести в dp?
Привет. У меня прописано условие - если какое то поле без ввода , то оно скрывается. Бывает что скрывается и title. А в таком случае на оставшееся тело item - данный onClick вообще не реагирует. Как можно настроить? Поправка - он реагирует, но не на всё тело, а только на какие то краешки поля, почему так?
А зачем в функции bind интерфейс передается как listener: Listener, ведь в адаптер классе он уже указан. class PlantAdapter(val listener : Listener):... А потом в класе холдере у функции bind: fun bind(plant...,listener:Listener)... Разве холдер класс уже не знает о listener от класса адаптера? Ведь холдер класс находится внутри класса адаптера, или я что-то путаю?
Посмотрел видео, все классно объяснено. По-моему, в "Котлин для начинающих 2021" ты это уже объяснял, т.к. этому приему я научился именно у тебя. Вопрос следующий: при исползовании паттерна MVVM, эти клики нужно обрабатывать в адаптере или фрагменте? У меня на одном фрагменте 9 кнопок, seekBar, switcher, editTextListener. Я логику обработки построил так: при нажатии на кнопку 1, я вызываю setOnClickListener { viewModel.doLogicBtn1() } и уже вся логика у меня идет во вью модели. Я правильно делаю, что из адаптера это передаю, или мне надо этот клик передать во фрагмент, и уже из фрагмента перекинуть во вью модель?
Здравствуйте Сергей, подскажите, как приобрести данный курс, связи с санкциями из ру сегмента нет возможности этого сделать, может есть какой-нибудь способ?
Спасибо за урок! Можете пожалуйста сделать уроки по поиску в Recyclerview через SearchView? И по фильтрации. Темы сложные, русскоязычных видео по ним такое впечатление что нет вообще.
@@NecoRuChannel Я в моем классе создал интерфейс listener и подключил его к mainActivity. Все работало. Попробовал подключить его к моему fragment. В этом фрагменте интерфейс не запускается.
@@nx6310 не важно где запускаешь, чтоб сработал нужно его передать в адаптер, то что ты подключил его к фрагменту это не означает что это тот же интерфейс которые ты добавил в адаптер. Мы же создавая адаптер передаем в него этот интерфейс который подключили, по этому если на фрагменте добавил интерфейс то и на фрагменте его нужно передавать в адаптер
Здравствуйте. Спасибо большое за урок! Скажите, а можно было сделать по-другому? Например, в адаптере создать var onClick: ((Plant) -> Unit)? = null , у itemView.setOnClickListener { onClick?.invoke(plant) }, а у Activity этот onClick изменять
Я думал из прошлых уроков, что все, с чем взаимодействуешь на экране это View а не интерфейс. Думаю, что про интерфейсы нужно отдельный урок с подробным разбором, бо выглядет запутано...
Насколько я помню из джавы - можно давать ссылке на интерфейс объект класса который реализует этот интерфейс..Так же и здесь когда мы пишем val adapter =PlantAdapter(this@MainActivity)? В джаве что-то вроде PlantAdapter.Listener listener = new MainActivity?
Нет в джаве мы используем например: PlantAdapter adapter = new PlantAdapter(this) или PlantAdapter adapter = new PlantAdapter(MainActivity.this) в случае если используем из метода где this это ссылка не на MainActivity я вно указываем что this это MainActivity в котлин то же самое делаем вот так this@MainActivity если явно нужно указать, если нет то просто this
@@NecoRuChannel Да, я несколько не так выразился - имел ввиду что в ссылку на интерфейс передаётся ссылка на объект который реализует этот интерфейс. В данному случае this. Я правильно понял?
У меня вопрос. Что лучше использовать для приложения чат (по типу whatsapp) Firebase(Firestore) или создавать свой backend и привязать к нему mongoDb? Что сможете посоветовать, просто как я замечал, по серверной части мало документации ..?
Не совсем понял переменную ItemView, насколько понял она внутренняя переменная класса PlantAdapter, а там появилась, потому что класс унаследован от RecyclerViewAdapter
Это придеться временно отложить, приложение было рассчитано на русскоязычную аудиторию а в связи с обстоновкой рекламу в россии отключили а на украине война, мы не сможем проверить доход от приложения для русскоязычной аудитории. Возможно переключусь на англоязычную аудиторию иначе пути не вижу на данный момент
@@NecoRuChannel Видимо у меня что то не работает, у меня выскакивает список уроков для начинающих, но первой части этого урока нет, может это для спонсоров и я не вижу этого. И еще вопрос, когда целесообразнее стать спосором канала ? Когда пройду курс для новичков ?
@@sergeylapin4499 Нет, эти уроки для всех. Ты возможно жмешь на ссылку: "Все уроки тут"? это от веб странице, а плэй лист это самая первая ссылка где написано:"Часть 1". Спонсором лучше после прохождения уроков для начинающих, но если все же решил без прохождения то начинай с уроков "Shopping list"
Все равно очень не понятно, максимально не интуитивно, с этими интерфейсами. Что, куда подключать и передавать. В других примерах как-то по другому показывают. И в голове каша от всего этого. Нужен отдельный урок по интерфейсам.
Сергей, большая Вам благодарность за Ваши уроки!
Это видео меня просто спасло. Я правда искал как сделать чтобы кнопка внутри списка работала, а не просто нажатие на элемент, но я сам додумал как это сделать. На английских видео ничего не понятно о том как это работает.
Спасибо большое. Я вот почти прошел курс для начинающих, начал делать свое приложение и застопорился на этой теме. Начал искать информацию на ютубе и сразу же мой любимый учитель )))
Всегда были пробелы по осмыслению интерфейсов.. Сейчас понял. Пойду везде шлёпать)
Лайк, подписка и т.д.
Это именно то, что мне и было нужно. Спасибо большое !
Спасибо Сергей за урок !Я его ждал .Очень подробно обьяснил ,будет понятно даже новичку .Жду следущей части .
Спасибо за Ваши уроки! Очень доступно и понятно! Особенно нравятся примеры и аналогии!!
Добрый день, Сергей. Спасибо за ваши уроки! Было бы очень интересно узнать про context: что это, для чего служит, когда указывается @ и тд
Ваши уроки это круто.
Спасибо!
очень не хватало. спасибо!
Большое спасибо! Отличного настроения!
Спасибо!
Отлично! Продолжайте.
Спасибо за отличные и понятные уроки!
Отличные уроки! запишите урок по MVP и MVVM пожалуйста
Большое спасибо Сергей))
Спасибо за уроки, все очень доступно и понятно! А есть в планах рассказать про шаблоны, например про MVVM? Было бы здорово с Вашим умением объяснения сложных вещей!...
Отлично. Положу в закладки. Вернусь к урокам, когда пройду другой свой курс.
Итого 7 месяцев изучения позади, еще чуть-чуть, и я стану маэстро андроида!
Отлично!
Без практики не станешь 🤓
@@videoCxema У меня уже есть опубликованное приложение в google Play "Солодин обзор акций".
Посмотри как я умею ;) Всё это благодаря Сергею.
@@androidkotlin-6234 🤙
@@androidkotlin-6234 а у меня нет вообще приложений, но уже работаю в компании. Удалось ли вам найти работу?
Спасибо за ваш труд! Уроки супер 🔥
Спасибо!
Очень нужное решение. Помню сам как то бился как вытащить нажатие в recycle .
Как же сложен RecyclerView после android compose
ждем продолжения... 👍
Большое спасибо за ваш труд!
Спасибо большое за видео!
Благодарю за урок
Здравствуйте Сергей про сканера карты тоже видео снимите
Neco,благодарю вас за ваши курсы.
Есть такой вопрос,зачем использовать интерфейс как посредника,если вполне можно обойтись без него,просто передав в адаптер объект нашего активити и в слушателе вызывать через этот объект нужеый нам метод?!
Спасибо, надеюсь тут услышу чем Котлин лучше Джава
Большое спасибо.Снимите пожалуйста видео о рекламе программы на Facebook
Спасибо за урок!) Жду следующие уроки по Jetpack, а то что то они пропали
Подскажите, пожалуйста.
Есть ли сейчас смысл начинать учиться программированию под Андроид на Котлине в виду возможно скорого перехода на Фуксию.
А вот такой вопрос а вы вчера подсказали что можно программно получить размер экрана и задать пропорции. Но ведь программно мы получаем размер в пикселях а как потом это перевести в dp?
Добрый день, Сергей. Наконец то Вы появились с новым роликом. Я Вам письмо написал на почту, но Вы не отвечаете. Как с Вами связаться?
Я сергей)) Почту регулярно проверяю, письма не видел
@@NecoRuChannel Может в Спам упало. Напишу снова с другой почты.
@@vavideoofficial Вот спам редко проверяю, я взгляну
А будут продвинутые уроки rcview? Ещё некоторые возможности показывать будете?
Привет. У меня прописано условие - если какое то поле без ввода , то оно скрывается. Бывает что скрывается и title. А в таком случае на оставшееся тело item - данный onClick вообще не реагирует. Как можно настроить?
Поправка - он реагирует, но не на всё тело, а только на какие то краешки поля, почему так?
Спасибо за уроки! Подскажите как можно создать ArrayMap в ресурсах
А зачем в функции bind интерфейс передается как listener: Listener, ведь в адаптер классе он уже указан.
class PlantAdapter(val listener : Listener):...
А потом в класе холдере у функции bind:
fun bind(plant...,listener:Listener)...
Разве холдер класс уже не знает о listener от класса адаптера? Ведь холдер класс находится внутри класса адаптера, или я что-то путаю?
Нет холдер не знает, это другой класс который не принадлежит адаптеру а просто прописан внутри, можно его вобще отдельно прописать
Посмотрел видео, все классно объяснено. По-моему, в "Котлин для начинающих 2021" ты это уже объяснял, т.к. этому приему я научился именно у тебя.
Вопрос следующий: при исползовании паттерна MVVM, эти клики нужно обрабатывать в адаптере или фрагменте? У меня на одном фрагменте 9 кнопок, seekBar, switcher, editTextListener. Я логику обработки построил так: при нажатии на кнопку 1, я вызываю setOnClickListener { viewModel.doLogicBtn1() } и уже вся логика у меня идет во вью модели. Я правильно делаю, что из адаптера это передаю, или мне надо этот клик передать во фрагмент, и уже из фрагмента перекинуть во вью модель?
Клик нужно передавать во фрагмент а от туда запускать логику через ViewModel так как ViewModel находится во фрагменте
@@NecoRuChannel спасибо
Спасибо!
Здравствуйте Сергей, подскажите, как приобрести данный курс, связи с санкциями из ру сегмента нет возможности этого сделать, может есть какой-нибудь способ?
Привет, да можно на Яндекс кошелек оплатить. Пиши мне на почту necodesarrollo@gmail.com
Через лямбда можно осуществить обратный вызов?
сделайте пожалуйста видео по recycler view, но только с фрагментами. передача данных между фрагментами, открытие другого фрагмента
Спасибо за урок! Можете пожалуйста сделать уроки по поиску в Recyclerview через SearchView? И по фильтрации. Темы сложные, русскоязычных видео по ним такое впечатление что нет вообще.
Хорошо
@@NecoRuChannel Благодарю! :3
Здравствуйте. Можно ли такой listener подключить к фрагменту?
Смотря что ты имеешь ввиду
@@NecoRuChannel Я в моем классе создал интерфейс listener и подключил его к mainActivity. Все работало. Попробовал подключить его к моему fragment. В этом фрагменте интерфейс не запускается.
@@nx6310 не важно где запускаешь, чтоб сработал нужно его передать в адаптер, то что ты подключил его к фрагменту это не означает что это тот же интерфейс которые ты добавил в адаптер. Мы же создавая адаптер передаем в него этот интерфейс который подключили, по этому если на фрагменте добавил интерфейс то и на фрагменте его нужно передавать в адаптер
Здравствуйте. Спасибо большое за урок! Скажите, а можно было сделать по-другому? Например, в адаптере создать var onClick: ((Plant) -> Unit)? = null , у itemView.setOnClickListener { onClick?.invoke(plant) }, а у Activity этот onClick изменять
Так намного лучше, потому что каждый раз подключать интерфейс для опрелеленного объекта очень глупо
топчик
Я думал из прошлых уроков, что все, с чем взаимодействуешь на экране это View а не интерфейс.
Думаю, что про интерфейсы нужно отдельный урок с подробным разбором, бо выглядет запутано...
View это элементы экрана, а интерфейс это посредник в коде, он с экраном ничего общего не имеет
В Котлин есть классы и интерфейсы
Насколько я помню из джавы - можно давать ссылке на интерфейс объект класса который реализует этот интерфейс..Так же и здесь когда мы пишем val adapter =PlantAdapter(this@MainActivity)? В джаве что-то вроде PlantAdapter.Listener listener = new MainActivity?
Нет в джаве мы используем например: PlantAdapter adapter = new PlantAdapter(this) или PlantAdapter adapter = new PlantAdapter(MainActivity.this) в случае если используем из метода где this это ссылка не на MainActivity я вно указываем что this это MainActivity в котлин то же самое делаем вот так this@MainActivity если явно нужно указать, если нет то просто this
@@NecoRuChannel Да, я несколько не так выразился - имел ввиду что в ссылку на интерфейс передаётся ссылка на объект который реализует этот интерфейс. В данному случае this. Я правильно понял?
Опа, что-то я пропустил, надо навёрстывать.
У меня вопрос. Что лучше использовать для приложения чат (по типу whatsapp) Firebase(Firestore) или создавать свой backend и привязать к нему mongoDb? Что сможете посоветовать, просто как я замечал, по серверной части мало документации ..?
Если знаний не очень много то конечно Firebase а если и в backend разбираешься и в андроид то свой лучше.
хороший, но сложный урок... Просьба использовать темную тему Windows, белая полоса панели задач сильно выделяется
Спасибо за твое мнение
Не совсем понял переменную ItemView, насколько понял она внутренняя переменная класса PlantAdapter, а там появилась, потому что класс унаследован от RecyclerViewAdapter
Но в целом очень понятно объяснили
Да, все верно. Мы же в класс ViewHilder(view) передали view потэтому у нас есть переменная viewHolder это и есть наш view который перелали
Добрый день, а куда пропал plantshandbook?
Он на месте, никуда не пропал
Неко, привет, есть ошибка поворота экрана в этом приложении, как это можно исправить?
Привет, у нас поворот экрана ненастроен. Это в комментарии не объяснить, пока просто заблокируй поворот, как это сделать полно информации в интернете
А как можно при нажатие редактировать и удалять item?)
Сделайте gps трекер с использованием VM
Очень жду завершение курса по Как заработать на приложении Андроид
Это придеться временно отложить, приложение было рассчитано на русскоязычную аудиторию а в связи с обстоновкой рекламу в россии отключили а на украине война, мы не сможем проверить доход от приложения для русскоязычной аудитории. Возможно переключусь на англоязычную аудиторию иначе пути не вижу на данный момент
@@NecoRuChannel понимаю, будем ждать и надеяться на лучшее :(
Первый
Откуда че берётся ниче непонятно
а на Java можно)?
На Java по Android уже незаписываю, так как котлин лучше и меньше кода
@@NecoRuChannel о0о а его легко учить?
@@NecoRuChannel о0о у меня идея есть. А можете сделать контент - Где подключаете к проекту firebase?
@@mikaelgevorgyan4521 Уже есть на канале
@@mikaelgevorgyan4521 Kotlin легче чем java
Ссылка на первую часть не находит ее (((
Почему? я проверил сейчас все работает, ссылка в описании
@@NecoRuChannel Видимо у меня что то не работает, у меня выскакивает список уроков для начинающих, но первой части этого урока нет, может это для спонсоров и я не вижу этого. И еще вопрос, когда целесообразнее стать спосором канала ? Когда пройду курс для новичков ?
@@sergeylapin4499 Нет, эти уроки для всех. Ты возможно жмешь на ссылку: "Все уроки тут"? это от веб странице, а плэй лист это самая первая ссылка где написано:"Часть 1". Спонсором лучше после прохождения уроков для начинающих, но если все же решил без прохождения то начинай с уроков "Shopping list"
Ребят, где лайки ?????🤨
зашел чтобы узнать как нажать на конпки в котлин,узнал все кроме него. в след раз напиши названия урока. чтобы люди не заходили
Все равно очень не понятно, максимально не интуитивно, с этими интерфейсами. Что, куда подключать и передавать. В других примерах как-то по другому показывают. И в голове каша от всего этого. Нужен отдельный урок по интерфейсам.