1

MainAcitivity class:

    public class MainActivity extends FragmentActivity {


        private int currentPage = 0;
        private String[] abc = {"A","B","C"};
        private String [] abc2 = {"B","C","D"};

        /**
         * The pager widget, which handles animation and allows swiping horizontally to access previous
         * and next wizard steps.
         */
        private ViewPager mPager;


        /**
         * The pager adapter, which provides the pages to the view pager widget.
         */
        private ScreenSlidePagerAdapter mPagerAdapter;

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

            // Instantiate a ViewPager and a PagerAdapter.
            mPager = (ViewPager) findViewById(R.id.pager);
            mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
            mPager.setAdapter(mPagerAdapter);

        }


        private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter implements OnPageChangeListener {
            public ScreenSlidePagerAdapter(FragmentManager fm) {
                super(fm);
            }

            @Override
            public Fragment getItem(int position) {
                 ScreenSlidePageFragment mScreenSlidePageFragment = new ScreenSlidePageFragment();
                 Bundle bundle = new Bundle();
                 bundle.putString("test", abc[position]);
                 if (position == 2){
                 bundle.putString("test", abc2[position]);
                 }
                 mScreenSlidePageFragment.setArguments(bundle);
                 return mScreenSlidePageFragment;
            }

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

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub
                if (currentPage == 2){
                    mPager.setCurrentItem(1,false);
                }
            }

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

            @Override
            public void onPageSelected(int position) {
                // TODO Auto-generated method stub
                currentPage = position;
            }
        }
    }

ScreenSlidePageFragment class:

public class ScreenSlidePageFragment extends Fragment {
    public TextView txt;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        ViewGroup rootView = (ViewGroup) inflater.inflate(
                R.layout.fragment_screen_slide_page, container, false);
        Bundle bundle = getArguments();
        String result = bundle.getString("test");
        txt = (TextView) rootView.findViewById(R.id.content);
        txt.setText(result);
        return rootView;
    }
}

What I want is when user drag to C (position 2), it will become middle page (position 1), so that user can drag again to "D" but I don't know how to make it work at all :(.

And I also want that if position 0 have text "A" or position 2 have text "D",user can not drag anymore. Please show me how to do that!

naji kun
  • 167
  • 2
  • 10

0 Answers0