当我从片段滑动到另一个时,如何进行事件

时间:2013-07-24 11:51:52

标签: java android android-fragments android-viewpager fragmentpageradapter

这是我关于在6个片段之间滑动的代码,我想做一个事件,当我从一个片段滑到另一个片段从互联网上加载一些东西时,所以请任何帮助我怎么能这样做?, ,我在哪里可以放置代码,我想到进度对话框在函数获取标题启动它并在片段的开头取消它是否适用?  这是我的代码:

             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;
                }
            }
             }

2 个答案:

答案 0 :(得分:6)

使用视图寻呼机的ViewPager.OnPageChangeListener来检测滑动或实现自定义视图寻呼机,请参阅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

        }
    });

答案 1 :(得分:0)

现在替换为

addOnPageChangeListener