I have a ViewPager
with 2 tabs. Each tab just holds a Fragment
with a RecyclerView
. The RecyclerView
in the first tab holds a list of all Articles
while the RecyclerView
in the second tab only holds the list of user's favorite Articles
. Each Article
in the first tab has a button in the RecyclerView
row that allows the user to favorite it. I want new favorites to be displayed automatically (without forcing the user to manually press the refresh button) when the user navigates to the second tab. How can I go about doing this? Essentially I need to add / remove items from the RecyclerView
which contains the favorites, but from the first fragment.
Things I have tried
- Call
adapter.notifyDataSetChanged()
in theonRefresh()
method of the favorites fragment. This works, but the performance hit is big becausenotifyDataSetChanged()
is not a cheap operation. I would like to avoid this if possible. - Tried following this guide, and implemented some interfaces. The problem is, when I try to reference the adapter in my fragment from the containing activity, the adapter is always null. I can post code if needed to show what I was doing if this is supposed to be possible.
Now I am considering using SQLite DB to store changes (favorite removals/additions) in the onClickListeners, and then checking that table in the onResume()
method and processing the changes individually, one by one with notifyItemChanged()
Is there a better way to do this?