Search code examples
androidandroid-fragmentsandroid-tabsfragmentpageradapter

How to update controls in all tabs created using FragmentPagerAdapter?


I have created a tabbed android application using android.support.v4.view.PagerAdapter.

There are about seven tabs in the application and I plan to add more. Each tab contains a lot of controls (TextView, Spinners, Toggle buttons, Check boxes etc.)

On the first tab there is a drop down to select a profile. The user can 'Load' or 'Save' a profile he wants.

A profile contains data for all the controls in the tabs and I need to update the UI controls in all the tabs.

I have all the data loaded from the profile but the UI controls are not getting updated.

There is a 'UpdateUI' function which calls 'set' functions (setText, setChecked etc. for individual controls after finding its view by ID).

I was informed that only three tabs (Previous, Current and Next) are kept in memory so I wrote the application such that the 'UpdateUI' function is called to set UI data only when user swipes to that particular tab (figuring out the active fragment).

Using DDMS logs I saw that the data loaded was proper but the 'setText' or 'setXXXXX' function does not update the fragment tab.

I have also checked several possible issues:

  1. Possibility of 'OnTextChanged' or an 'OnListener' updating the data again.
  2. Made sure 'UpdateUI' is called from UI thread.
  3. Using notify data change and redrawing UI to make sure UI is updated.

I am a novice Java/Android programmer. Please point me in the right direction.


Solution

  • viewpager.setOffscreenPageLimit(size);
    

    you can instantiate all your fragments by setting limit then you can update all widgets inside other fragments.