RecyclerView (Kotlin Beginner Example)

Поділитися
Вставка
  • Опубліковано 25 лип 2024
  • High quality Android programming courses: codingwithmitch.com/
    In this video I show you how to setup a RecyclerView on Android using Kotlin.
    The RecyclerView items display an image and text.
    In this android recyclerview beginner example I use the following external libraries:
    - Glide to display the images from the internet
    - CardView for showing CardViews in the RecyclerView
    - RecyclerView (obviously for the recyclerview)
    This is the perfect example if you're a complete beginner to android development or you're looking to get started with Kotlin. I build the RecyclerView Adapter from scratch and show you how to build:
    - A custom object class to model the data
    - A custom list-item layout for the RecyclerView list items
    - A custom RecyclerView Adapter
    All the code is free and available on Github.
    Instagram: / codingwithmitch
    Code: github.com/mitchtabian/Kotlin...
    Images: github.com/mitchtabian/Blog-I...
  • Наука та технологія

КОМЕНТАРІ • 185

  • @gunther982
    @gunther982 3 роки тому +2

    The best android tutorial I have come across. So simple and understandable, whilst dropping wisdom and real-world examples. Love it

  • @danielwatts3718
    @danielwatts3718 4 роки тому

    These videos are so good. The explanations of why pieces need to be put together is extremely helpful and rare to find on youtube.

  • @baijusharma6027
    @baijusharma6027 4 роки тому +1

    Superb l was awaiting for these kind of tutorials on this channel. Keep going. Kotlin a new journey begins for Android developer.

  • @Ageleo
    @Ageleo 4 роки тому +8

    Thank you! Can't wait for more Kotlin tutorials

  • @muhammadusama4437
    @muhammadusama4437 4 роки тому +5

    Select recyclerView item and take information from that to next activity/fragments. Also material design selection. This tutorial is awesome.

    • @codingwithmitch
      @codingwithmitch  4 роки тому +2

      I'll do an onclicklistener one next and nav to a new activity

  • @DavidNitzscheBell
    @DavidNitzscheBell 4 роки тому +9

    6:27 you discuss for about a full minute why your `image` field is declared as a `String`. This is a case where the naming of variables is very important and useful. Call the field `imageURL`; this makes it clear to all, even deep in the middle of some chunk of code, that the variable points to an image somewhere and is not actually the (binary) image file.

  • @hoonjung2143
    @hoonjung2143 4 роки тому +2

    Thank you! Helped me a lot :)
    Looking forward to more Kotlin! :D

  • @codinginflow
    @codinginflow 4 роки тому +21

    Thank you I always wanted to know how that works

  • @leonespartano
    @leonespartano 4 роки тому +1

    Thanks Mitch. I'm really thankful for all your tutorials. Your form of explaining these complicated topics is wonderful.

  • @brianssendagire262
    @brianssendagire262 4 роки тому +2

    Thank you for your selfless share of useful knowledge. As a mobile app developer, you taught me Django web development with the Blog Course and I will without a doubt continue to pay for the online courses you offer. Let's support Mitch folks, pay for his online courses, he's an inspiration and a great guy.

  • @IsZprAsGaminG
    @IsZprAsGaminG 4 роки тому +4

    You have become my master now. Among all the tutorials on UA-cam, your videos are the one that clearly understandable

  • @srdjansmulja5375
    @srdjansmulja5375 4 роки тому

    HUGE HUGE THANK YOU! Really good tutorial, maybe the best one i saw from Kotlin tutorials. Keep up the good work mate!

    • @codingwithmitch
      @codingwithmitch  4 роки тому +1

      All I ask is that you stay away from that Coding In Flow guy.

  • @davidscammell9823
    @davidscammell9823 4 роки тому +1

    Excellent tutorial - you and your friend over at 'Coding in Flow' are my go to guys for proper tutorials, with the explanations where needed - thank you for the brilliant content!.. Now, just need to hook this up to my Firestore Database, through my Repository and ViewModel and I'll be getting somewhere!! (ahem!) :)
    +1 for adding onClick to this RecyclerView!

  • @bogdan4760
    @bogdan4760 4 роки тому

    That's one of the most COOL tutorials I have ever seen in my life. You are awesome

  • @RomskieL
    @RomskieL 3 роки тому

    Thanks alot! You have explained so well the sequence on how to use the RecyclerView.

  • @nexgen.graphics
    @nexgen.graphics 4 роки тому

    Highly informative and valuable. And thank you for the extras .apply and itemdecoration class :).

  • @armandosantos5552
    @armandosantos5552 4 роки тому +1

    Nice Tutorial, I want to learn more about Kotlin with your tutorials

  • @prasannadeshpande4435
    @prasannadeshpande4435 4 роки тому

    Loved the tutorial. It was very helpful. Thank you.

  • @sudhir1274
    @sudhir1274 4 роки тому

    Very good RecyclerView Tutorial. Thank you for sharing.

  • @rushidesai2836
    @rushidesai2836 4 роки тому

    Great stuff Mitch!!

  • @eugeniomeza2886
    @eugeniomeza2886 4 роки тому

    Thank you very much for the tutorial. Keep up the good work.

  • @eternussolutions1084
    @eternussolutions1084 3 роки тому

    Nice Video Mitch!

  • @khaxbiker
    @khaxbiker 3 роки тому

    Learning a lot from your videos, Thanks one more time!

  • @merttatli9455
    @merttatli9455 3 роки тому +7

    @CodingWithMitch Thank you for the content, i was tring to write the adapter code myself but i realized that when I implement BlogViewHolder i had an issue with itemView, it cannot see the layout properties. Is there any solution for it?

    • @merttatli9455
      @merttatli9455 3 роки тому +3

      I find out that Kotlin Android Extensions is deprecated. That's why if you want to use this code you need to change it to 'kotlin-parcelize'

    • @Qwertie64982
      @Qwertie64982 2 роки тому +1

      If you want to avoid dependencies on either of these, you could probably just do something like val blogTitle: TextView = itemView.findViewById(R.id.blog_title)

  • @PhilBrighton4
    @PhilBrighton4 4 роки тому

    This was very well explained, thanks. I want to create a recyclerview that uses two separate lists / types of data where one set of data follows the other on the same screen. I can combine them into a single list containing the two different data types, but I have been struggling to convert them to display in the two different views . A video covering this would be a godsend to me :)

  • @mohammadatif2774
    @mohammadatif2774 3 роки тому

    Once again thank you very much ... this is what i was looking for.

  • @mohammadatif2774
    @mohammadatif2774 3 роки тому +1

    wow clean and clear explanation

  • @ahmedyosri4827
    @ahmedyosri4827 Рік тому

    LOVE THIS PLEASE MAKE MORE

  • @muhammedrabee8234
    @muhammedrabee8234 3 роки тому

    Great job man 👏👏 Keep up

  • @dbtechprojects2392
    @dbtechprojects2392 3 роки тому

    Thanks for the great video, really helpful for people new to android dev

  • @prajnadeep
    @prajnadeep 4 роки тому

    This was helpful. Thank You!

  • @user-uj9on1hr5d
    @user-uj9on1hr5d 4 роки тому

    Nice explanation for Beginner like me Thank u !!

  • @JohnDoe-cp3co
    @JohnDoe-cp3co 4 роки тому +2

    You saved my nerves, thanks bud

  • @Nikox102
    @Nikox102 3 роки тому

    I love you dude, you helped me so much! Thanks

  • @quewealawea
    @quewealawea 3 роки тому

    Awesome video! you helped me a lot!! you have a new subscriber :D

  • @vahidhoseini1723
    @vahidhoseini1723 3 роки тому

    great, good job mitch.

  • @vishalvaidya617
    @vishalvaidya617 3 роки тому

    Thank you! this really helped me a lot!

  • @leolimoncito6564
    @leolimoncito6564 4 роки тому

    Thanks, master, this video is really useful.

  • @samha1513
    @samha1513 4 роки тому +1

    Great work as always 👌

  • @louiechung4790
    @louiechung4790 4 роки тому +1

    Very good tutorial. Thanks

  • @iftak01
    @iftak01 3 роки тому +2

    Nice vid. Note: Synthetic view were used there in fun bind in ViewHolder Class...but its deprecated now.
    Good explanation tho

  • @antongeraskin159
    @antongeraskin159 2 роки тому

    great tutorial, helped me a lot

  • @namluongxuan2940
    @namluongxuan2940 4 роки тому

    Thank you sir. That it Great !!

  • @pragistyomachmud4062
    @pragistyomachmud4062 4 роки тому +6

    Just like the thumbnail: 👍

  • @eskwelaaco5753
    @eskwelaaco5753 3 роки тому

    Thank you for this!

  • @dcsister6057
    @dcsister6057 2 роки тому

    thank you ,learn so much from you

  • @b.k4142
    @b.k4142 4 роки тому +1

    Good idea!! i m new kotlin fun!!

  • @RajeshSamson
    @RajeshSamson 4 роки тому +1

    Great Video!.......... thank you

  • @terjemah_alquran
    @terjemah_alquran 4 роки тому +1

    thank you this, help me alot

  • @versaticon
    @versaticon 3 роки тому

    Thanks for sharing your knowlegde.

  • @ziasheikh2863
    @ziasheikh2863 2 роки тому

    This video on recyclerview is superb. Please also make a video on recyclerview with endless scroll listener in kotlin. There is no quality stuff on this topic as i have checked many videos. Thank you.

  • @from2ureview251
    @from2ureview251 4 роки тому

    Thanks dear Mitch

  • @SK-fq2yz
    @SK-fq2yz 4 роки тому +46

    Please do Recycle view clicks in Kotlin

    • @Milan-iw2kr
      @Milan-iw2kr 4 роки тому +1

      Did he done it? I can`t find it :(

    • @agoldfish9239
      @agoldfish9239 3 роки тому +4

      Sorry for the late reply but to add an onClick just add this code right below 22:36 in the video on line 37
      init {
      itemView.setOnClickListener {
      val position:Int = adapterPosition
      Toast.makeText(itemView.context,"You clicked on item # ${position + 1}", Toast.LENGTH_SHORT).show()
      }
      }
      Also if u want to add a little animation when you click each tile in your layout_blog_list_item.xml
      add these three tags to where you want it to glow
      android:clickable="true"
      android:focusable="true"
      android:foreground="?selectableItemBackground"

  • @yuktasood853
    @yuktasood853 4 роки тому

    Hi! Thanks for the great video! I've implemented the recyclerView but I can only see the default images. Can you help?

  • @rahulattili3039
    @rahulattili3039 4 роки тому

    Thanks and Subscribed !

  • @gilsonjuniorpro
    @gilsonjuniorpro 4 роки тому +2

    Great video! So, I am facing some problems using MediatorLiveData, if you have time, would be great see a video from you about this, thank you my friend

  • @VishalSingh-eb4zc
    @VishalSingh-eb4zc 4 роки тому +1

    Thank you! making kotlin video mitch Bhai

  • @JosieInCase
    @JosieInCase 4 роки тому +1

    Really good video, helped me a lot!!
    If you could make a video about RecyclerView OnClickListener for Kotlin, that would be awesome!!

  • @TBrianOnline
    @TBrianOnline 4 роки тому

    Thank for the tutorial! How can I make the list from my own assets?

  • @shivamkumarjha3302
    @shivamkumarjha3302 4 роки тому

    Hey Mitch!
    Just added the margin in layout file and spacing problem solved without spacing item decorator in recyclerview. Is there any other use of spacing item decorator?
    Great Tutorial, as usual!! Thanks

  • @suhaskadu8595
    @suhaskadu8595 2 роки тому

    Great Video

  • @jeanit3378
    @jeanit3378 4 роки тому

    Hola, muy buen video, estoy aprendiendo kotlin y este tutorial ha sido el que mas me ha servidor :),,,, tengo una consulta por cierto,,, estuve haciendo unos cambios en el data source para poder obtener la data desde internet y cuando lo ejecuto no pasa nada,, sin embargo cuando le pongo un delay de 2 segundos carga perfecto con la info de internet,, supongo que el problema va por el tema sincrono y asincrono,, entonces,,,sabes alguna forma de hacerlo asincrono para que cargue en background y luego presente los resultados?,, o por ultimo bloquear la app hasta que espere el resultado del GET.

  • @juliodiamond
    @juliodiamond 4 роки тому +1

    Thank you for tutorial. I wait for the next tutorial
    i'm from Indonesian

    • @ardi7095
      @ardi7095 4 роки тому

      jogja hadir..
      kejarlah ilmu sampai youtube hehee

  • @JoshMartin
    @JoshMartin 3 роки тому +8

    Why is there no usage of "findViewById" to reference the elements in the layout file? I keep getting errors of "Unresolved reference" in the BlogViewHolder class, but if I change them to "val blog_image = itemView.findViewById(R.id.blog_image)" then I stop receiving errors.

    • @ikresimir
      @ikresimir 3 роки тому

      Thanks Josh!

    • @thomas_2224
      @thomas_2224 3 роки тому

      Thank you !

    • @sb-cr4wu
      @sb-cr4wu 2 роки тому

      @@thomas_2224 ua-cam.com/video/afl_i6uvvU0/v-deo.html

  • @fruitpunchi
    @fruitpunchi 3 роки тому

    Thank you bro

  • @VivekYadav-ds8oz
    @VivekYadav-ds8oz 4 роки тому +1

    Can't we use lambda function to avoid creating the new Decorator class by using the lambda function directly in addItemDecoration() ?

  • @byronjosafatmartinelli7373
    @byronjosafatmartinelli7373 3 роки тому

    Great Tutorials! Just one question. How to make it not like infinite loops? Just want some simple Recycler view.

  • @shaydstv8542
    @shaydstv8542 4 роки тому

    Hi Mitch, first thank you for your help through all your videos !
    Second, could you make a course about Dual Panel fragments in landscape ?
    - RecyclerView in left fragment
    - ItemDetail in right fragement
    So far I didn't find out how to pass data from my recyclerview item to my fragment detail...
    Thanks :)

  • @tahirdevlog2047
    @tahirdevlog2047 4 роки тому

    Thank you

  • @raypaxman9600
    @raypaxman9600 2 роки тому +2

    For some reason, I can't get the adapter to work. When making the "val blog_image = itemView.blog_image" aswell as the others, they aren't connecting to the other file where blog_image, blog_title, and blog_author are. so = itemView.blog_image becomes an error.

  • @davidgreer1324
    @davidgreer1324 4 роки тому

    How would the code change if the image was in the drawable folder?

  • @somdatatechnology233
    @somdatatechnology233 3 роки тому

    thanks mitch for your amazing tutorial, how to connect with api (volley) with this app, could you help me

  • @mostafahelalyDev
    @mostafahelalyDev 4 роки тому

    I have a small problem the item click listener code I don't know where should l put it and I want if I clicked on the item number 1 I want the app intent me to another layout and so on on the other items and I don't know how to lead to the index to do that I hope you help me in this problem

  • @shihabmohammad6157
    @shihabmohammad6157 4 роки тому

    @codingWitMitch it would be awesome if you post some thing that show how we can wire different views like recycler-views and recycler-view list menu with bottom navigationbar/ or inside fragments

  • @stephanieha1413
    @stephanieha1413 4 роки тому

    Do you teach how to click inside of the card view?? Really need it xD

  • @calvinusiri9498
    @calvinusiri9498 4 роки тому

    Hey Mitch, thanks for the video. I know the example above is for beginners, but how would you solve for a situation where you are loading images async with glide and scroll up/down really quickly with your recyclerview. Because the views are being recycled, and Glide is async, you'll have the incorrect image being shown on your Imageview for a moment before glide catches up with correct image. Do you know of a way to handle this without clearing Glide or setImageBitmap(null).

    • @codingwithmitch
      @codingwithmitch  4 роки тому

      No that doesn't happen. Just use it as I showed you

  • @mskatanani
    @mskatanani 4 роки тому

    Would you please clarify the differences between using the generic view holder and the customized one in adapter

    • @codingwithmitch
      @codingwithmitch  4 роки тому

      the custom one contains all the fields from the custom layout we built

  • @MalamIbnMalam
    @MalamIbnMalam 2 роки тому

    One question, in your DataSource class, why not simply just do object DataSource() as opposed to class DataSource then declare the nested companion object? Thanks!

  • @Alegoria7
    @Alegoria7 4 роки тому

    I have problems when i have to put the (parent.context), it gives an error, how can i fix it?

  • @erlanbulanbekov4703
    @erlanbulanbekov4703 3 роки тому

    ItemView.context will return applicationContext? or Activity context?

  • @raypaxman9600
    @raypaxman9600 2 роки тому +1

    Getting errors from list and ArrayList() both as errors. Edit: so I changed them to MutableList and arrayListOf() for now. Haven't finished the example, so I don't know if it'll mess it up.

  • @nidhijoshi2939
    @nidhijoshi2939 2 роки тому +1

    23:42. I am getting error in creating requestOptions object. its saying "Cannot create instance of an abstract class". Can anyone help me out with it.

  • @ziasheikh2863
    @ziasheikh2863 2 роки тому

    Hello, i hope you're doing good. Thanks for such kind of great videos!!!. Can we control card elevation behaviour? I mean by using card elevation we got a shadow but it is very sharp shadow... Can we control it's sharpness?

    • @shykatislam5581
      @shykatislam5581 2 роки тому

      declare the cornerRadius ... i hope it helps
      Thank You

  • @codinginflow
    @codinginflow 4 роки тому +10

    the "image pointer" almost looks like a URL

    • @hatty101
      @hatty101 4 роки тому

      what are you doing here? lol

    • @codinginflow
      @codinginflow 4 роки тому +1

      @@hatty101 setting things straight

    • @hatty101
      @hatty101 4 роки тому

      @@codinginflow ok, make a tutorial about recyclerview and jsoup on kotlin please, i cant find a new one.

  • @aihoneyai1197
    @aihoneyai1197 3 роки тому +1

    i have this problem with class viewholder (in my case is SalesViewHolder),
    it can't detect the id of the component of layout file. eg. val salesName = itemView.nameRV
    nameRV is marked red, it says unresolved refernce

    • @priyamvashi2187
      @priyamvashi2187 3 роки тому +1

      val blog_image = itemView.findViewById(R.id.blog_image)

  • @omidmirrajaee8054
    @omidmirrajaee8054 4 роки тому

    ty mitch for tutorial - and i have 2 question
    1 - why use topSpacingItemDecoration? Why not use the xml layer margin
    2- The difference between using this code
    class BlogViewHolder constructor(itemView: View) : RecyclerView.ViewHolder(itemView)
    with
    class BlogViewHolder (val itemView: View) : RecyclerView.ViewHolder(view)

  • @matijasokol2881
    @matijasokol2881 4 роки тому

    recycler is working without notifyDataSetChanged in submitList method?

  • @mantiriadeputra1188
    @mantiriadeputra1188 3 роки тому +1

    hi Mitch nice tutorial. my recycle view can load the data perfectly , but I don't no why I'm getting this error "E/RecyclerView: No adapter attached; skipping layout". Please Help. Thank you

    • @priyamvashi2187
      @priyamvashi2187 3 роки тому

      val blog_image = itemView.findViewById(R.id.blog_image)

  • @sayidaliahmedelmi7988
    @sayidaliahmedelmi7988 4 роки тому

    hello mitch this android jetback course is published?

  • @goobar
    @goobar 4 роки тому +2

    shirt game is strong in this intro 😀

  • @blessonthomas4875
    @blessonthomas4875 3 роки тому

    Please can you do video in different view type

  • @agoldfish9239
    @agoldfish9239 4 роки тому +4

    First!!!

  • @yasserelgammal3696
    @yasserelgammal3696 4 роки тому

    20:37
    you can simply reach views via:
    holder.view.[views name] = [ modelName.username ] for example

  • @pauljomy3793
    @pauljomy3793 4 роки тому

    What about the onClicklistner in recyclerview

    • @gabormiklay9209
      @gabormiklay9209 4 роки тому +2

      do it in the ViewHolder class when binding or in an init{} block.
      itemView.setOnClickListener {}

  • @pumpmanagementsoftware
    @pumpmanagementsoftware 4 роки тому +1

    Hey how is b4a for android development

  • @TheRajmoney
    @TheRajmoney 3 роки тому

    please do video with different views using kotlin

  • @hatty101
    @hatty101 4 роки тому

    Please make one with jsoup too!

  • @harishraja1936
    @harishraja1936 4 роки тому

    setcall backs in list ????

  • @jayantjadhav9566
    @jayantjadhav9566 3 роки тому +2

    21:23 blog_image gives error as no reference found

    • @priyamvashi2187
      @priyamvashi2187 3 роки тому +1

      val blog_image = itemView.findViewById(R.id.blog_image)

  • @eagleeye2316
    @eagleeye2316 4 роки тому

    good day, i am getting this error, Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED
    what should i do?please help