Video není dostupné.
Omlouváme se.

RECYCLERVIEW - Android Fundamentals

Sdílet
Vložit
  • čas přidán 4. 03. 2020
  • In this video you will learn about a very important view in Android which is the RecyclerView. It is used to implement all kinds of list in a very efficient way.
    ⭐ Get certificates for your future job
    ⭐ Save countless hours of time
    ⭐ 100% money back guarantee for 30 days
    ⭐ Become a professional Android developer now:
    pl-coding.com/...
    💻 Let me personally review your code and provide individual feedback, so it won't backfire and cost you a fortune in future:
    elopage.com/s/...
    Regular Android tutorials on my Instagram: / philipplackner_official
    Checkout my GitHub: github.com/phi...

Komentáře • 223

  • @ohmegatech666
    @ohmegatech666 Před rokem +25

    OK I didn't understand your explanation of what RecyclerView does but after looking it up now I understand. When a view (the container for one of the rows) goes off screen, instead of just being off screen and taking up resources for no reason, or just being deleted and replaced with a new one, Android keeps it but replaces all the content (the actual image and words you see) with new content. This way the system doesn't need to store all the hundreds of views (which would eat up all the memory), and it doesn't have to constantly delete view objects only to replace them with new ones (which would use up CPU power). Instead it only creates the minimum number of view objects (however many fit on the screen) and just replaces the content in them with whatever needs to be displayed.

  • @Domo22xD
    @Domo22xD Před 2 lety +149

    Okay so I see a lot of people have problem with this tutorial.
    Problem 17:36
    So in your build.gradle file add this code inside of android {} and make sure you press sync.
    BUILD.GRADLE
    buildFeatures {
    viewBinding true
    }
    And this is how your code should look like.
    CODE:
    class ToDoAdapter(var todos: List): RecyclerView.Adapter() {
    inner class ToDoViewHolder(val binding: ItemTodoBinding) : RecyclerView.ViewHolder(binding.root)
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ToDoViewHolder {
    val layoutInflater = LayoutInflater.from(parent.context)
    val binding = ItemTodoBinding.inflate(layoutInflater, parent, false)
    return ToDoViewHolder(binding)
    }
    override fun onBindViewHolder(holder: ToDoViewHolder, position: Int) {
    holder.binding.apply {
    // tvTitle this now works
    }
    }
    override fun getItemCount(): Int {
    return todos.size
    }
    }
    This is not bad tutorial but for beginners it's hard. Also Philipp should update with pined comment or something about this problem. And how to solve it.
    Enjoy

    • @renatovg6337
      @renatovg6337 Před 2 lety +1

      Thank you, it works!!! Yes, and update or at least a pinned comment is definitely needed.

    • @Domo22xD
      @Domo22xD Před 2 lety +1

      @@renatovg6337 Croatia? I ask because of VG in username?

    • @chairulfajri9030
      @chairulfajri9030 Před 2 lety +4

      He used buildgradle:app plugin add id 'kotlin-android-extensions'

    • @AB-sq1sy
      @AB-sq1sy Před 2 lety +1

      King

    • @ViperVGP
      @ViperVGP Před 2 lety +1

      Thanks a lot!

  • @mrodriguezalas
    @mrodriguezalas Před 4 lety +23

    A really easy improvement for anyone reading is to add etTodo.text.clear() to remove the text for the item that was just added.
    btnAddTodo.setOnClickListener {
    val title = etTodo.text.toString()
    val todo = Todo(title, false)
    todoList.add(todo)
    //update recycler view
    adapter.notifyItemInserted(todoList.size - 1)
    // Clear text
    etTodo.text.clear()
    }
    Nice tutorial, thanks!

  • @ARIZONAMUSIC
    @ARIZONAMUSIC Před 3 lety +12

    the best explanation ever
    I'm learning android programming in Kotlin and for 1 week I've been trying to understand RV setting.
    Thanks you lot, Phillip!

  • @megumin4625
    @megumin4625 Před 3 lety +54

    Anybody wondering why your viewbinding isn't working? Here's how to fix it -->>>
    1. Set it in gradle -> (NOTE: this belongs under -> android { } , section)
    buildFeatures {
    viewBinding true
    }
    2. Use LayoutNameBinding as the class to inflate from in onCreateViewHolder (as "LayoutName" suggests, you replace this with the name of your xml layout)
    val layoutInflater = LayoutInflater.from(parent.context)
    val binding = LayoutNameBinding.inflate(layoutInflater, parent, false)
    return MyViewHolder(binding)
    3. Send the binding to the ViewHolder (update the viewholder to hold a reference to LayoutNameBinding type)
    inner class MyViewHolder(val binding: LayoutNameBinding) : RecyclerView.ViewHolder(binding.root)
    4. Enjoy viewbinding in onBindViewHolder() method!
    holder.binding.apply {
    tvtext.text = somedata
    message.text = mymessage
    date.text = date
    }
    (NOTE, you may need additional implement's or whatnot in gradle. You can google for those)

  • @abrammedrano991
    @abrammedrano991 Před 3 lety +6

    I was stuck on a problem for a whole day until I saw this video! Thank you!

  • @terrencejackson4451
    @terrencejackson4451 Před 3 lety +3

    I havent seen the video yet but.... CAN WE TALK ABOUT HOW COOL THAT INTRO TRANSITION WAS???!!! xD

  • @guy1407
    @guy1407 Před 4 lety +3

    Thanks for the great demo
    On minute 18:50 , I used an inner apply :
    todos[position].apply {
    txtTitle.text = title
    chkDone.isChecked = isChecked
    }

  • @tiagocastro9039
    @tiagocastro9039 Před rokem +4

    I think this video is very clear. I'd just add the mention that as an option to LinearLayoutManager you can have LinearLayout.Horizontal in case you want to have it scrollable horizontally.

  • @vasiliv6872
    @vasiliv6872 Před 2 lety +1

    Thank you Philipp, for the great tutorials! I follow the ANDROID FUNDAMENTALS FOR BEGINNERS and the tutorials are perfect so far.

  • @jacksonhall4322
    @jacksonhall4322 Před 3 lety +4

    Great tutorial Phillip! The lesson is valuable and your narration is easy to understand. Thank you

  • @natnaelsisay1424
    @natnaelsisay1424 Před 5 měsíci

    My understanding is alot better now, but am sure i will get back to it once more. Thanks mate

  • @20-000
    @20-000 Před 3 lety +7

    Hello Phillip! Do you plan on creating a video about recyclerview in view binding?

  • @WisdomWhisper933
    @WisdomWhisper933 Před rokem +1

    In LayoutInflater function why attachToRoot parameter in need if its always going to be false??

  • @mohamedzaarir1122
    @mohamedzaarir1122 Před rokem +1

    does it save ? i mean if i close the app and open it again , does it save the ToDos that i added or not ?

  • @dluca182
    @dluca182 Před 2 lety +1

    the learning curve is steep on this one....

  • @harshmore6664
    @harshmore6664 Před 3 lety +2

    Amazing , detailed and easy to understand , thank you so much

  • @apiuagou9601
    @apiuagou9601 Před 3 měsíci

    You are indeed the best teacher for this but I also noticed you didn't use the get function to get the individual items in your list item folder.Someone explain why

  • @mateuszczuba9684
    @mateuszczuba9684 Před 10 měsíci +1

    Hi! Thanks for this tutorial! I have a question though (probably a noob question): how can you access e.g. the rvTodos and its properties directly inside the main class? Same question for e.g. the tvTitle inside the TodoAdapter class. To access these have to first declare a val and find the needed object by id (e.g. val tvTitle = findViewById(R.id.tvTitle)).

  • @haxificality
    @haxificality Před rokem +1

    you're explanation was very detailed, but i found out this method was only possible in my case using a depreciated method of using 'kotlin-android-extensions' as plugin for gradle. i hope you can redo it in the new updated method as of 2023.

  • @thecoder9193
    @thecoder9193 Před 2 lety

    I'm really thankful to you . This tutorial is very easy to understand and learn recycle view.

  • @Domo22xD
    @Domo22xD Před 2 lety +5

    Also there is problem on 20:21. You need add RecyclerView, Button and TextView to use it. So in your MainActivity add code like this.
    CODE:
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    var todoList = mutableListOf(
    ToDo("Text",false)
    )
    // This was added
    val rv = findViewById(R.id.rvTodos) as RecyclerView
    val btnAddTodo = findViewById(R.id.btnAddTodo) as Button
    val etTodo = findViewById(R.id.etTodo) as TextView
    val adapter = ToDoAdapter(todoList)
    rv.adapter = adapter
    rv.layoutManager = LinearLayoutManager(this)
    btnAddTodo.setOnClickListener{
    val title = etTodo.text.toString()
    val todo = ToDo(title,false)
    todoList.add(todo)
    adapter.notifyItemInserted(todoList.size - 1)
    }
    }
    Enjoy

  • @nipponetzel
    @nipponetzel Před 3 lety +4

    at 17:14 in onBindViewHolder function I write holder.itemView and then . (dot) android studio doesnt find or recognize tvTitle or cbDone, I cant access those. Could anyone (or you Philipp Lackner) tell me what can be the problem? What am I missing? Please help!!!

    • @glebshymko
      @glebshymko Před 3 lety

      Hi, you need add Kotlin Android Extensions to your gradle file.

    • @glebshymko
      @glebshymko Před 3 lety +3

      put it in dependencies :
      apply plugin: 'com.android.application'
      apply plugin: 'kotlin-android'
      apply plugin: 'kotlin-android-extensions'
      But also Kotlin Android Extensions are now
      deprecate.

    • @nipponetzel
      @nipponetzel Před 3 lety

      @@glebshymko I dont remember right now how I fixed this problem but I did not with extensions. Thank you for the answer and suggestion I preciate that...

    • @MrSchloban
      @MrSchloban Před 3 lety

      @@glebshymko Thank you! Been staring at my code for 1h wondering what when wrong

    • @megumin4625
      @megumin4625 Před 3 lety +4

      Anybody wondering why your viewbinding isn't working? Here's how to fix it -->>>
      1. Set it in gradle -> (NOTE: this belongs under -> android { } , section)
      buildFeatures {
      viewBinding true
      }
      2. Use LayoutNameBinding as the class to inflate from in onCreateViewHolder (as "LayoutName" suggests, you replace this with the name of your xml layout)
      val layoutInflater = LayoutInflater.from(parent.context)
      val binding = LayoutNameBinding.inflate(layoutInflater, parent, false)
      return MyViewHolder(binding)
      3. Send the binding to the ViewHolder (update the viewholder to hold a reference to LayoutNameBinding type)
      inner class MyViewHolder(val binding: LayoutNameBinding) : RecyclerView.ViewHolder(binding.root)
      4. Enjoy viewbinding in bind() method!
      (NOTE, you may need additional implement's or whatnot in gradle. You can google for those)

  • @TheImaginativeSachin
    @TheImaginativeSachin Před rokem +1

    Wow this is really step by step love this.

  • @Indently
    @Indently Před 4 lety +2

    Really helpful tutorial! Could I ask you if you know any places online where I could really dive deep into recycler views?

    • @PhilippLackner
      @PhilippLackner  Před 4 lety +4

      Thanks a lot! Take a look at codinginflow's channel, he has two new videos about recyclerview which I think are very detailed. I'm sure you can also find some good medium articles about recyclerviews

  • @marcw6875
    @marcw6875 Před 2 lety +1

    I'm having one problem with this tutorial. I don't know if anyone will reply in time to help me with this assignment, but I'll throw it out there in case anyone in the future has the same problem. In the adapter class, in the onBindViewHolder function, I tried using the same method to set the text in my recycler view, but I'm getting "unresolved references." For an example, I have a line of code "forecast_date.text = forecastList[position].date" where forecast_date is the ID for that particular TextView in my forecast_list_item.xml file. That is highlighted in red with the unresolved reference. I see that your program added that import kotlinx statement when started coding this part, but I don't seem to have that option.
    Any ideas why it's not seeing my forecast_list_item.xml file?...

  • @stephanvanellewee1653
    @stephanvanellewee1653 Před 2 lety

    Wow, this is such an elegant tutorial! Thank you!

  • @TefkrosAirliner
    @TefkrosAirliner Před 3 lety

    Thank you Sir! Better than my lecturer's explanation

  • @rolinejohnaguilar7819
    @rolinejohnaguilar7819 Před 4 lety +2

    Thank you, this actually helped me to understand recycler view :D

  • @youssefkhaled1189
    @youssefkhaled1189 Před rokem

    Thank you so much this was really simplified amazingly

  • @ronaldotiego
    @ronaldotiego Před rokem +1

    When I run my app, I get Dublicate Classes error. What could be the problem please

  • @shivamparimalbhaigohel6632

    Amazing Tutorial. Keep up the good work man!

  • @fuadydheo3155
    @fuadydheo3155 Před 4 lety +2

    good dude, fundamental is important, awesome!!

  • @jillwark2782
    @jillwark2782 Před 2 lety +1

    this is a snippet from my working recyclerview app (not related to this video)
    when ur experiencing adapter not attached message at logcat, initialize RecyclerView variable at OnCreate() like the one shown below
    private lateinit var binding:ActivityGameSaveBinding
    private lateinit var itemRV: RecyclerView
    (these variables are declared in Activity)
    ...
    binding = ActivityGameSaveBinding.inflate(layoutInflater)
    setContentView(binding.root)
    ...
    itemRV = binding.gamesavelist
    itemRV.setHasFixedSize(true)
    itemRV.setLayoutManager(
    LinearLayoutManager(
    this,
    LinearLayoutManager.VERTICAL,
    false
    )
    )
    ...
    val itemAdapter = ItemAdapter(itemList as ArrayList)
    itemRV.setAdapter(itemAdapter)
    hope it helps

  • @prithvib8662
    @prithvib8662 Před 3 lety +7

    Awesome tut. Only feedback is to use the GUI to add textviews/buttons/etc. instead of adding them manually via the XML editor as it is easier for viewers to follow along and see the app come together

    • @illusion9423
      @illusion9423 Před 2 lety +3

      He said in a previous video he prefers to teach XML because it has way more options than what you see in the GUI

  • @simasbutavicius8485
    @simasbutavicius8485 Před 2 lety

    Thank you. The way you explain things, it's really easy to follow for newbies like me - very good job!

  • @SeemantAggarwal
    @SeemantAggarwal Před 4 lety +3

    AMAZING, ABSOLUTELY AMAZING TUTORIAL, Can you please zoom in your code? I code it alongside and sometimes find it difficult, also DO CALL YOUR MOM, It is important hahaha

  • @ZombeeStar
    @ZombeeStar Před rokem +1

    if i had a delete button on the template then how would i attach a function to each one?

  • @xtd3000
    @xtd3000 Před 4 lety +1

    Thank you very much for this video, it was really easy to follow and understand. Your explanations are clear and concise :)

  • @Zeresrail
    @Zeresrail Před 3 lety +1

    I wonder if you will answer my question - following your guide, for some reason the itemview does not show any of the views (like title etc) (in the apply part). As if it doesnt know them. Cant find a solution to this issue or why it is happening.

    • @arbouchemadjber2540
      @arbouchemadjber2540 Před 3 lety

      i have the same problem , any solution ??

    • @Zeresrail
      @Zeresrail Před 3 lety

      @@arbouchemadjber2540 I defined the fields in the holder inner class, finding them by Id, and accessed them that way.

  • @Defense89
    @Defense89 Před 3 lety

    awesome video , simple exemple not to much in it , perfect to understand the basics of everything 5 star this!!!!!!!!!!! good job

  • @arrayofsilicon
    @arrayofsilicon Před 2 lety

    Very Clean Explaination Thanks

  • @abhirupamitra2895
    @abhirupamitra2895 Před 2 lety +1

    Hi, I am just starting out with the tutorials. I can see that the recycler view state/ items in the todo list are not save when I reopen the app. Is there a way to go about this?

  • @derekdevs
    @derekdevs Před rokem

    This is fantastic. Thank you so much!

  • @durotimiemmanuel5840
    @durotimiemmanuel5840 Před 2 lety

    Thank you Philipp u are awesome all of the videos I have watched were top notch and easy to understand as well except for maybe this one. I didn't quite understand the whole thing about recycle view...can you please help me for am not so sure I can get a better place to learn than here? thanks in anticipation

  • @MonishKrishnaS
    @MonishKrishnaS Před 2 lety

    Glad I find this video at the first. The only thing is when you add the todo, the text on the keyboard is still there. How to get the EditText to empty itself after adding? Is there any systematic way?

  • @GiridharaSaiPavanKumarGurram

    Hey,
    Great tutorial
    Can you do a video on layout manager in recyclerview ?

  • @saeedyaftian5800
    @saeedyaftian5800 Před rokem

    thanks a lot you explain this unit very good

  • @rochmanramadhanichieftoira2695

    Awesome tutorial! Hello from Indonesia 😁

  • @phamhung2263
    @phamhung2263 Před 3 lety +2

    Thanks so much, Philipp. I really love all your amazing videos. Could you please create a video about using advanced RecyclerView in Android (increase performance, best practice when using RecyclerView...). I think it will be useful for any Android Developer

  • @TheImaginativeSachin
    @TheImaginativeSachin Před rokem +1

    Hey how can i remove the todo list after i check the checkbox?

  • @jaywye
    @jaywye Před 3 lety

    Thank you for this video. Very helpful.

  • @Ali-hf8hu
    @Ali-hf8hu Před 2 lety

    Clear explanation. Congrats !
    Can you do updates as video or as comment under the video, because there are some deprecated usages.

  • @qasimmir336
    @qasimmir336 Před 3 lety +1

    Hello mate. I have a question. I need to add RecyclerView to another activity do I need to create a new adapter and data class for the activity's RecyclerView or the same adapter can be used somehow? Waiting for your reply. Thank you.👍

    • @calibur5518
      @calibur5518 Před 2 lety

      hi just create 1 adapter then from your mainActivity pass it to any new Activity you want

  • @ajaygalagali5963
    @ajaygalagali5963 Před 3 lety

    Great explanation! Thanks

  • @celina6204
    @celina6204 Před 3 lety

    Great tutorial! I always look for your channel when I don't understand something in Android :) Can you do a video on ListAdapter please

  • @ericpalmer4103
    @ericpalmer4103 Před 2 lety

    Your explanation is just wow! Could you pls bring a video on the same but in Java?

  • @Beatboxerskills
    @Beatboxerskills Před 2 lety

    hey Phillip :) if you also had a Spinner with todo category how would you declare that in the data class?

  • @PiBou321
    @PiBou321 Před 3 lety

    Hi, first thank you for this tutorial !
    Why do we put todos.size in the getItemCount function ? The number of items showed should be different from the total number of items of the list, no? I don’t understand where in the code the adapter takes into account the site of the user screen, can you help me to understand please?

  • @brianryan4053
    @brianryan4053 Před 3 lety +1

    I have mutableListOf in red. Does anybody know how to fix this issue?

  • @arthurdiarealvares4829

    Thank you very much man!!!

  • @moisesgomez7820
    @moisesgomez7820 Před 3 lety

    Hi Phillip, I hope you are well. I'm following your tutorial with my own example. I have two activities: MainAcitivity and CreateNoteActivity. I want to pass text from two EditTexts in CreateNoteActivity and display it in a RecyclerView in MainActivity. When I click in the Create Note button, the note is not display in the Main Activity. How I can fix this?
    Before, I try the same app but with an only one activity: MainActivity, and works fine. Now I have two activities and I don't achieve success yet. Please, any help will be gratefully.

  • @facucancian7875
    @facucancian7875 Před 5 měsíci

    BEAUTIFUL

  • @SirDanMartin
    @SirDanMartin Před 3 lety

    do you have a video showing how you can use a button from within each recycler view?

  • @jjongim3956
    @jjongim3956 Před 3 lety

    great lecture! Thank You!!

  • @valarmorghulisx
    @valarmorghulisx Před 4 lety +1

    i love you man! you are awesome!

  • @agp1444
    @agp1444 Před 3 lety

    good explanation. thanks

  • @dfmayes
    @dfmayes Před 5 měsíci

    Thanks for the video. Is the code on github?

  • @shahbaztariq2837
    @shahbaztariq2837 Před rokem

    Thanks bro!

  • @faraday6521
    @faraday6521 Před 2 lety

    Hi Philipp is this playlist for beginners to android or for java devs transitioning to kotlin, cause i'm the former with just knowledge of kotlin bascis

  • @prakashm5711
    @prakashm5711 Před 4 lety

    why this awesome video has less number of views.?

  • @mrpi230
    @mrpi230 Před 3 lety

    thank you, you explain really well.

  • @kratom82
    @kratom82 Před 3 lety

    do you have an idea how to build a recyclerview like the "contacts" in a standard phone? i have a large dataset via json and some items have a category lets say "bikes" and some have "cycles" .. item decoration seems the wrong choice :D

  • @51bpegasi
    @51bpegasi Před 3 lety +3

    You're an amazing teacher, been watching a lot of your tutorials.
    I just downloaded Android Studio 4.2.1 and I got stuck at 17:14 because it doesn't see tvTitle, I tried Megumin's proposed fix but doesn't seem to work for me
    build.gradle (Module: ...)
    android {
    ...
    buildFeatures {
    viewBinding true
    }
    ...}
    package com.tutorial.recyclerviewtutorial
    import android.view.LayoutInflater
    import android.view.ViewGroup
    import androidx.recyclerview.widget.RecyclerView
    import com.tutorial.recyclerviewtutorial.databinding.ItemTodoBinding
    class ToDoAdapter(var todos: List): RecyclerView.Adapter() {
    inner class TodoViewHolder(val itemView: ItemTodoBinding): RecyclerView.ViewHolder(itemView.root)
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TodoViewHolder {
    val inflater = LayoutInflater.from(parent.context)
    val view = ItemTodoBinding.inflate(inflater, parent, false)
    return TodoViewHolder(view)
    }
    override fun onBindViewHolder(holder: TodoViewHolder, position: Int) {
    holder.itemView.apply {
    tvTitle.text = todos[position].title // tvTitle is unresolved reference here
    }
    }
    override fun getItemCount(): Int {
    return todos.size
    }
    Not sure how to fix this to continue.

    • @51bpegasi
      @51bpegasi Před 3 lety +1

      oh wait, itemView seems to be reserved, works when i change it to itemview

    • @martianly808
      @martianly808 Před 3 lety

      same question.How to fix?

    • @olafpl99999
      @olafpl99999 Před 2 lety

      @@51bpegasi Didnt fix it for me, can you elaborate on your solution?

  • @youcantbebored2988
    @youcantbebored2988 Před 3 lety

    If we search for the xml views in onBindViewHolder wont it search for the view for every item ?
    this is exactly why we have ViewHolder class, so that the activity don't have to search for the view for every item
    😅😅correct me if i am wrong

  • @Marinakulichok
    @Marinakulichok Před 4 lety

    Add this line to clean the text in the EditText after it was added, otherwise you can not understand whether text was added or not

    • @SaifAli-ij2xt
      @SaifAli-ij2xt Před 4 lety

      just add the following one line code for that: etTodo.getText().clear()

  • @bigstrongrobot1330
    @bigstrongrobot1330 Před 2 lety

    what is """tvTitle""" ? it's not working and we didn't declare it before !!!

  • @meghanabasutkar363
    @meghanabasutkar363 Před 3 lety

    Loved it!

  • @gangardarwagle8938
    @gangardarwagle8938 Před 18 dny

    Why is that only first data is shown

  • @4585329
    @4585329 Před 3 lety +1

    19:56 Did you ever ask your crush out Philipp?

  • @javieer
    @javieer Před 4 lety

    Thanks so much for your help! You are kind of a heroe for me

    • @PhilippLackner
      @PhilippLackner  Před 4 lety

      People who write such comments like you are heroes for me 🙏

  • @GeorgeTrialonis
    @GeorgeTrialonis Před rokem

    Hi there! In MainActivity rvTodos is not identified. Anyone has an idea about how to fix it? I applied a suggestion posted below by someone who watched this video. This suggestion did not work for me. Also, in the the clicklistener Todo [line: Todo(title, false)] is not identified either. Thanks.

    • @PhilippLackner
      @PhilippLackner  Před rokem +1

      Back then we had a plugin called Kotlin synthetics which allowed us to call views directly. Nowdays, you'll need to get view references using either findViewById() or ViewBinding (preferred)

  • @olayiwolaosho4989
    @olayiwolaosho4989 Před 3 lety

    Great video man
    Thanks for this
    Have a question
    The how does the view holder know the XML view item it should hold is gotten from the todoitemxml didn't see any reference to it
    Thanks 😊

    • @Anonymous-nx9fh
      @Anonymous-nx9fh Před 3 lety

      The ViewHolderclass is a inner class of the Adapter so the viewholder can get the refernce from there . Hope this helps :)

  • @AdityaDey424
    @AdityaDey424 Před 2 lety

    I add the layout in onCreateViewHolder method. But I can't access the components of this layout in onBindViewHolder method . Anyone please help me .......

  • @arthurmsiska3800
    @arthurmsiska3800 Před 2 lety

    I messed up somewhere, when I run the app, the ,list does not show up nor the recycler view item

  • @nicholastzane3466
    @nicholastzane3466 Před 4 lety

    Very nice video.
    Could you also make a video focusing on Emulator Devices. For example in this tutorial my app worked by i got the error
    Emulator: socketTcpLoopbackClientFor: error: fd 69252 above FD_SETSIZE (32768)
    and I don't know how i can fix it.

  • @wowovanmbothen
    @wowovanmbothen Před 4 lety

    You take the data from list in Main Activity (todolist), what if i want to take the data from some class? For example i have data class book that contain title, author, year released etc

    • @crateer
      @crateer Před 4 lety

      Well then you take the items from the Book Class, store them in a list, and you're done =)

  • @user-ed8xj1py6w
    @user-ed8xj1py6w Před rokem

    HI! How delete item (position) ?

  • @gdstardust
    @gdstardust Před 4 lety

    Nice tutorial, how can i implement recyclerview with snapping on start?

  • @anyaanya8884
    @anyaanya8884 Před 3 lety

    Thanks a lot man

  • @user-os2dd8ox8s
    @user-os2dd8ox8s Před 4 lety

    Right now cbDone.isChecked is not updated in todo item. When you create more items and scroll then changed cbDone will be set as default.

  • @debayanghoshdastider
    @debayanghoshdastider Před 3 lety

    Accessing the checkbox and text view using synthetics does not work anymore and to use ViewBinding we need the adapter class. I am confused here. Can you please make a video on this?

    • @johnpunzak8916
      @johnpunzak8916 Před 2 lety

      To avoid the synthetics, add the following to the inner class:
      init{
      tvTitle = itemView.findViewById(R.id.tvTitle)
      cbDone = itemView.findViewById(R.id.cbDone)
      }
      Then refer to the items directly in onBindViewHolder, like this:
      override fun onBindViewHolder(holder: TodoViewHolder, position: Int) {
      holder.tvTitle.text = todos[position].title
      holder.cbDone.isChecked = todos[position].isChecked
      }

  • @hasht7331
    @hasht7331 Před 3 lety

    Where is "rvTodoItems" coming from in the main activity????

  • @Indy293
    @Indy293 Před 3 lety

    Thanks a lot

  • @alirezazarghi4682
    @alirezazarghi4682 Před 3 lety

    hi very good and nice plz learn Recyclerview drag and drop , thx

  • @thahaziq97
    @thahaziq97 Před 3 lety

    Thank youu !!

  • @movie4u978
    @movie4u978 Před 3 lety

    why did u set android:height = 0dp ,

  • @shizanahamadali3748
    @shizanahamadali3748 Před 2 měsíci

    sorry to say, since last last 2 weeks i learning android from you thank for that, but this Recycle view video hard to understand, idk sir you're explain lots of this but i couldn't get it , better would be you can add a dedicated video for this topic, i know you know there are tones of video out there, but they not god at explain

  • @navinkodam412
    @navinkodam412 Před 3 lety

    Nice one!

  • @brucebane7401
    @brucebane7401 Před 3 lety

    really good !!!!