1

I'm using a pager adapter successfully but would like to know how to add an on click listener for each individual 'page'? which would then launch an activity using intent. There are 5 pages each with their own xml file. here's the code:

public class MyActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        MyPagerAdapter adapter = new MyPagerAdapter();
        ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
        myPager.setAdapter(adapter);
        myPager.setCurrentItem(0);



private class MyPagerAdapter extends PagerAdapter {



        public int getCount() {
                return 5;
        }

        public Object instantiateItem(View collection, int position) {

                LayoutInflater inflater = (LayoutInflater) collection.getContext()
                                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                int resId = 0;
                switch (position) {
                case 0:
                        resId = R.layout.farleft;
                        break;
                case 1:
                        resId = R.layout.left;
                        break;
                case 2:
                        resId = R.layout.middle;
                        break;
                case 3:
                        resId = R.layout.right;
                        break;
                case 4:
                        resId = R.layout.farright;
                        break;
                }

                View view = inflater.inflate(resId, null);

                ((ViewPager) collection).addView(view, 0);

                return view;
        }



        @Override
        public void destroyItem(View arg0, int arg1, Object arg2) {
                ((ViewPager) arg0).removeView((View) arg2);

        }

        @Override
        public void finishUpdate(View arg0) {
                // TODO Auto-generated method stub

        }

        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
                return arg0 == ((View) arg1);

        }

        @Override
        public void restoreState(Parcelable arg0, ClassLoader arg1) {
                // TODO Auto-generated method stub

        }

        @Override
        public Parcelable saveState() {
                // TODO Auto-generated method stub
                return null;
        }

        @Override
        public void startUpdate(View arg0) {
                // TODO Auto-generated method stub

        }

}

}

Pete
  • 597
  • 1
  • 8
  • 27

1 Answers1

4

simply use this

view.setOnClickListener()
Zaz Gmy
  • 4,236
  • 3
  • 19
  • 30
  • where would i put this though ? I don't have rows – Pete Apr 26 '12 at 09:27
  • this was indeed correct. This also helped me: http://stackoverflow.com/questions/10243909/passing-a-fragment-in-the-constructor-of-an-adapter – Pete Apr 29 '12 at 10:35