- I have 2
Fragment
s:My1stFragment
andMy2ndFragment
. - Inside
My1stFragment
I have aListView
which is populated by database. Also when I click on edit button I call 2ndFragment
to edit data. - In 2nd
Fragment
I edit my salary amount and update my database by clicking on submit button and come back toMy1stFragment
. - The problem is when I come back to
My1stFragment
, myListView
is not updated, even though the database has been updated.

- 30,051
- 12
- 94
- 120

- 652
- 7
- 22
-
are you using a cursor loader? – Raghunandan Apr 03 '15 at 10:05
-
i am getting data but i can not refresh List View. – Ram Mansawala Apr 03 '15 at 10:19
2 Answers
Add following in your firstFragment:
@Override
public void setUserVisibleHint(boolean isVisibleToUser){
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
Log.e("Visible hint","in visibleHint ()");
//add your method to set adapter to listview here by passing (getActivity().getApplicationContext()) parameter for context
}
}
Now when you want to come to first fragment from other fragment, use :
((ActivityOfFragment) getActivity())./*viewPager if any.*/setCurrentItem(0/*fragment position*/, true);

- 485
- 2
- 4
- 16
Derive your PagerAdapter
class as
public static class MyPagerAdapter extends FragmentStatePagerAdapter
instead of
public static class MyPagerAdapter extends FragmentPagerAdapter
Basically, FragmentPagerAdapter
keeps the created Fragment
s in memory, while FragmentStatePagerAdapter
destroys and creates them anew as they are shifted in and out of view.
Further Considerations:
1. Make sure you are not calling setRetainInstance(true)
in any of your Fragment
s, else they won't be refreshed / updated.
2. Add
viewPager.setOffscreenPageLimit(0);
to your code. This ensures that adjacent Fragment
s are recreated.
3. Instead of
Activity -> ViewPager -> Fragments
create the structure as
Activity -> Fragment -> ViewPager -> Nested Fragments
This will ensure that each Fragment
is refreshed on page swipe. See this post for the implementation.
EDIT:
As discussed in the comments below, point 2 is redundant. So only points 1 and 3 are actually useful in this case.

- 1
- 1

- 30,051
- 12
- 94
- 120
-
sure of the second point? https://code.google.com/p/android/issues/detail?id=56667#c3. By default its 1!. – Raghunandan Apr 03 '15 at 10:15
-
great point, very good :) I suppose the second recommendation is redundant, as the minimum is internally set to 1. – Yash Sampat Apr 03 '15 at 10:22
-
@ Y.S Thanks for helping its easy to understand and implement also i refer this simple, easy and good one. – Ram Mansawala Apr 03 '15 at 10:23