Autore Topic: refresh e swipeview  (Letto 294 volte)

Offline stevetech

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    sony xperia T
  • Sistema operativo:
    android 4.3
refresh e swipeview
« il: 03 Ottobre 2014, 17:05:22 CEST »
0
Ciao a tutti,
sto cercando di capire come fare il refresh dei fragment all'interno del pager.
L'effetto che vorrei ottenere è il seguente:
- creo l'activity
- imposto la swipe-view con i dati presi dalla cache
- registro un location listener
- quando ricevo la nuova location aggiorno i fragment (non vorrei ricreare tutti i fragment ma semplicemente cambiare i dati)

ovviamente il codice qui sotto non è completo; ad esempio non ho richesto l'aggiornamento della location.. l'ho postato solo per capire come potrei secondo voi, aggiornare i dati all'interno del fragment senza doverli ricreare

ho provato con notifydatasetchanged() ma non succede nulla.
ecco il codice:
Codice: [Seleziona]
public class MainActivity extends ActionBarActivity implements
                ActionBar.TabListener,LocationListener {
        SectionsPagerAdapter mSectionsPagerAdapter;
        ViewPager mViewPager;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                final ActionBar actionBar = getSupportActionBar();
                actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

                mSectionsPagerAdapter = new SectionsPagerAdapter(
                                getSupportFragmentManager());

                mViewPager = (ViewPager) findViewById(R.id.pager);
                mViewPager.setAdapter(mSectionsPagerAdapter);
                mViewPager
                                .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                                        @Override
                                        public void onPageSelected(int position) {
                                                actionBar.setSelectedNavigationItem(position);
                                        }
                                });

                for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
                        actionBar.addTab(actionBar.newTab()
                                        .setText(mSectionsPagerAdapter.getPageTitle(i))
                                        .setTabListener(this));
                }
        }

        @Override
        public void onTabSelected(ActionBar.Tab tab,
                        FragmentTransaction fragmentTransaction) {
                mViewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(ActionBar.Tab tab,
                        FragmentTransaction fragmentTransaction) {
        }

        @Override
        public void onTabReselected(ActionBar.Tab tab,
                        FragmentTransaction fragmentTransaction) {
        }

        public class SectionsPagerAdapter extends FragmentPagerAdapter {

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

                @Override
                public Fragment getItem(int position) {
                        return PlaceholderFragment.newInstance(position + 1);
                }

                @Override
                public int getCount() {
                        return 3;
                }

                @Override
                public CharSequence getPageTitle(int position) {
                        Locale l = Locale.getDefault();
                        switch (position) {
                        case 0:
                                return getString(R.string.title_section1).toUpperCase(l);
                        case 1:
                                return getString(R.string.title_section2).toUpperCase(l);
                        case 2:
                                return getString(R.string.title_section3).toUpperCase(l);
                        }
                        return null;
                }
        }

        public static class PlaceholderFragment extends Fragment {
                private static final String ARG_SECTION_NUMBER = "section_number";

                public static PlaceholderFragment newInstance(int sectionNumber) {
                        PlaceholderFragment fragment = new PlaceholderFragment();
                        Bundle args = new Bundle();
                        args.putInt(ARG_SECTION_NUMBER, sectionNumber);
                        fragment.setArguments(args);
                        return fragment;
                }

                public PlaceholderFragment() {
                }

                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                Bundle savedInstanceState) {
                        View rootView = inflater.inflate(R.layout.fragment_main, container,
                                        false);
                        return rootView;
                }
        }

        @Override
        public void onLocationChanged(Location location) {
                // qui dovrei aggiornare i fragment
               
        }
}
« Ultima modifica: 03 Ottobre 2014, 17:08:36 CEST da stevetech »