2

this is my code about swipe between 6 fragments ,, i want to do an event when i swipe from one fragment to the other as loading some thing from internet ,, so please any help how can i do this ???,, and where can i put the code ,, i think about the progress dialog start it at function get title and cancel it at the beginning of the fragment is it applicable?? this is my code :

             package com.example.my_finalswipe;
                 import java.util.List;
                 import java.util.Locale;
            import java.util.Vector;
            import android.os.Bundle;
            import android.support.v4.app.Fragment;
            import android.support.v4.app.FragmentActivity;
            import android.support.v4.app.FragmentManager;
            import android.support.v4.app.FragmentPagerAdapter;
            import android.support.v4.view.ViewPager;
            import android.view.LayoutInflater;
            import android.view.View;
            import android.view.ViewGroup;

             public class MainActivity extends FragmentActivity {


            SectionsPagerAdapter mSectionsPagerAdapter;


            ViewPager mViewPager;
            List<Fragment> fragments ;

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

                // Create the adapter that will return a fragment for each of the three
                // primary sections of the app.
               fragments = new Vector<Fragment>();

                        fragments.add(Fragment.instantiate(this, FragmentOne.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentTwo.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentThree.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentFour.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentFive.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentSix.class.getName()));

            mSectionsPagerAdapter=new SectionsPagerAdapter(super.getSupportFragmentManager());

                // Set up the ViewPager with the sections adapter.
                mViewPager = (ViewPager) findViewById(R.id.pager);
                mViewPager.setAdapter(mSectionsPagerAdapter);

            //





            }





            public class SectionsPagerAdapter extends FragmentPagerAdapter {

                public SectionsPagerAdapter(FragmentManager fm) {

                    super(fm);
                }

                        @Override
                        public Fragment getItem(int position) {
                             int _pos = position % 6;
                             return fragments.get(_pos);

                        }

                @Override
                public int getCount() {
                    // Show 3 total pages.
                    return 6;
                }

                @Override
                public CharSequence getPageTitle(int position) {
                    final String title_section4="Section4";
                    final String title_section5="Section5";
                    final String title_section6="Section6";
                    final String title_section1="Section1";
                    final String title_section2="Section2";
                    final String title_section3="Section3";

                    Locale l = Locale.getDefault();
                    switch (position) {


                    case 0:
                        return title_section1.toUpperCase(l);

                    case 1:
                        return title_section2.toUpperCase(l);

                    case 2:
                        return title_section3.toUpperCase(l);

                    case 3:
                        return title_section4.toUpperCase(l);
                    case 4:
                        return title_section5.toUpperCase(l);
                    case 5:
                        return title_section6.toUpperCase(l);

                    }
                    return null;
                }
            }


            public static class FragmentOne extends Fragment {

                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentOne() {
                }

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

                    return rootView;
                }
            }


            public static class FragmentTwo extends Fragment {

                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentTwo() {
                }

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

                    return rootView;
                }
            }


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

                public FragmentThree() {
                }

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

                    return rootView;
                }
            }



            public static class FragmentFour extends Fragment {

                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentFour() {
                }

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



            public static class FragmentFive extends Fragment {

                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentFive() {
                }

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


            public static class FragmentSix extends Fragment {

                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentSix() {
                }

                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                    View rootView = inflater.inflate(R.layout.six, container, false);
                  return rootView;
                }
            }
             }
aroma Khan
  • 89
  • 2
  • 11

2 Answers2

6

Use ViewPager.OnPageChangeListener of your view pager to detect swipe OR implement custom view pager see this

ADD THIS

mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

        @Override
        public void onPageSelected(int arg0) {
            // TODO Auto-generated method stub

            //DO THINGS HERE

        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
            // TODO Auto-generated method stub

        }
    });
Community
  • 1
  • 1
Arun C
  • 9,035
  • 2
  • 28
  • 42
  • i have just to put this code in my application ?,,please answer me – aroma Khan Jul 24 '13 at 12:04
  • See the edit use onPageSelected to do your task. Best of luck! – Arun C Jul 24 '13 at 12:12
  • i apply it in my code but i have many erorr mainly this Multiple markers at this line - OnPageChangeListener cannot be resolved to a type - The method setOnPageChangeListener(ViewPager.OnPageChangeListener) in the type ViewPager is not applicable for the arguments (new OnPageChangeListener(){}) – aroma Khan Jul 24 '13 at 14:27
  • make sure that you imported ViewPager.OnPageChangeListener – Arun C Jul 24 '13 at 14:54
0

it is now replace with

addOnPageChangeListener

James Tan
  • 1,336
  • 1
  • 14
  • 32