Skip to content

Instantly share code, notes, and snippets.

@alexfu
Last active June 21, 2024 19:11

Revisions

  1. alexfu revised this gist Jun 17, 2013. 2 changed files with 11 additions and 8 deletions.
    13 changes: 9 additions & 4 deletions MyActivity.java
    Original file line number Diff line number Diff line change
    @@ -1,10 +1,15 @@
    public class MyActivity extends Activity {
    private ViewPager mPager;
    private MyAdapter mPagerAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.my_activity);
    mPager = (ViewPager) findViewById(R.id.pager);
    mPager.setAdapter(new MyAdapter());
    }
    ViewPager pager = (ViewPager) findViewById(R.id.pager);
    mPagerAdapter = new MyAdapter();
    pager.setAdapter(mPagerAdapter);
    }

    private void updateFragments() {
    mPagerAdapter.updateFragments();
    }
    }
    6 changes: 2 additions & 4 deletions MyAdapter.java
    Original file line number Diff line number Diff line change
    @@ -13,11 +13,9 @@ public Fragment getItem(int position) {
    mObservers.addObserver((Observer) fragment);

    return fragment;
    }
    }

    @Override
    public void notifyDataSetChanged() {
    public void updateFragments() {
    mObservers.notifyObservers();
    super.notifyDataSetChanged();
    }
    }
  2. alexfu revised this gist Jun 17, 2013. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions MyAdapter.java
    Original file line number Diff line number Diff line change
    @@ -7,6 +7,7 @@ public MyAdapter(FragmentManager fm) {

    @Override
    public Fragment getItem(int position) {
    mObservers.deleteObservers(); // Clear existing observers.
    Fragment fragment = new MyFragment();
    if(fragment instanceof Observer)
    mObservers.addObserver((Observer) fragment);
  3. alexfu revised this gist Jun 17, 2013. 1 changed file with 10 additions and 0 deletions.
    10 changes: 10 additions & 0 deletions MyActivity.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    public class MyActivity extends Activity {
    private ViewPager mPager;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.my_activity);
    mPager = (ViewPager) findViewById(R.id.pager);
    mPager.setAdapter(new MyAdapter());
    }
    }
  4. alexfu created this gist Jun 17, 2013.
    7 changes: 7 additions & 0 deletions FragmentObserver.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    public class FragmentObserver extends Observable {
    @Override
    public void notifyObservers() {
    setChanged(); // Set the changed flag to true, otherwise observers won't be notified.
    super.notifyObservers();
    }
    }
    22 changes: 22 additions & 0 deletions MyAdapter.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    public class MyAdapter extends FragmentPagerAdapter {
    private Observable mObservers = new FragmentObserver();

    public MyAdapter(FragmentManager fm) {
    super(fm);
    }

    @Override
    public Fragment getItem(int position) {
    Fragment fragment = new MyFragment();
    if(fragment instanceof Observer)
    mObservers.addObserver((Observer) fragment);

    return fragment;
    }

    @Override
    public void notifyDataSetChanged() {
    mObservers.notifyObservers();
    super.notifyDataSetChanged();
    }
    }
    10 changes: 10 additions & 0 deletions MyFragment.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    public class MyFragment extends Fragment implements Observer {

    /* Fragment related stuff... */

    @Override
    public void update(Observable observable, Object data) {
    View root = getView();
    // Update your views here.
    }
    }