0

I've created a stringArray I'd like to use with a viewPager:

    private String[] stringArray = new String[] { "value1",
            "value2", "value3", "value4",
    "value5" };

I found this SO article:

Different text for each image in image viewpager

and I tried to mimic it's format - but I'm getting a warning from eclipse stating:

The value of the field Home.ImagePagerAdapter.stringArray is not used

Therefore I feel as if I haven't properly linked my stringArray and my viewPager.

ViewPager:

mPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int pos) {
                String list1 = "value1";
                Log.d("PK", "**** onPageSelected");
                new GetDataTask(responseHandler, list1)
                .execute();

            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                Log.d("PK", "onPageScrolled");
                // TODO Auto-generated method stub
            }

            @Override
            public void onPageScrollStateChanged(int pos) {

                Log.d("PK", "onPageScrollStateChanged");

            }
        });


mPageChangeListener = new ViewPager.SimpleOnPageChangeListener() {

    @Override
            public void onPageSelected(int position) {
                onTabChanged(mPager.getAdapter(), mCurrentTabPosition, position);
                position = mCurrentTabPosition;
                int oldPos = mPager.getCurrentItem();

                Log.d("PK", "Page selected");

                if (position > oldPos) {

                    System.out.print(position);
                    // Moving to the right
                    String list = "value1";


                } else if (position < oldPos) {
                    // Moving to the Left
                    System.out.print(position);
                    String list = "value1";


                }
                mPager.setOnPageChangeListener(mPageChangeListener);
            }

            private void onTabChanged(PagerAdapter adapter,
                    int mCurrentTabPosition, int position) {

                Log.d("PK", "Tab changed");
                // TODO Auto-generated method stub

            }

...


private class ImagePagerAdapter extends PagerAdapter implements
    ViewPager.OnPageChangeListener {
        public ImagePagerAdapter(Activity act, int[] mImages,
                String[] stringArra) {
            imageArray = mImages;
            activity = act;
            stringArray = stringArra;
        }

        public ImagePagerAdapter() {
            super();

        }

        private int[] mImages = new int[] { R.drawable.btn1,
                R.drawable.btn2, R.btn3,
                R.btn4, R.btn5 };

        private String[] stringArray = new String[] { "value1",
                "value2", "value3", "value4",
        "value5" };

        @Override
        public int getCount() {
            return mImages.length;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == ((ImageView) object);
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            Context context = Home.this;
            ImageView imageView = new ImageView(context);
            imageView.setScaleType(ScaleType.FIT_XY);
            imageView.setImageResource(mImages[position]);
            ((ViewPager) container).addView(imageView, 0);
            return imageView;
        }

        public void destroyItem(ViewGroup container, int position, Object object) {
            ((ViewPager) container).removeView((ImageView) object);
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
            // TODO Auto-generated method stub
            Log.d("pk", "onPageScrollStateChanged");
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
            // TODO Auto-generated method stub
            Log.d("pk", "onPageScrolled");
        }

        @Override
        public void onPageSelected(int arg0) {
            // TODO Auto-generated method stub
            Log.d("pk", "onPageSelected");
        }
    }
Community
  • 1
  • 1
Droidzilla
  • 137
  • 3
  • 16

1 Answers1

0

You need to use an OnPageListener on your view pager like you did.

Your strings array need to be a class field and need to be as lenght as the number of page of the ViewPager (mImages.lenght). Otherwise you'll face an IndexOutOfBoundsException

mPager.setOnPageChangeListener(new OnPageChangeListener() {

                    @Override
                    public void onPageSelected(int pos) {

                            String playlist1 = stringArray[pos];
                            new GetYouTubeUserVideosTask(responseHandler, playlist1)
                            .execute();

                    }

                    @Override
                    public void onPageScrolled(int arg0, float arg1, int arg2) {

                    }

                    @Override
                    public void onPageScrollStateChanged(int pos) {

                    }
            });
Timothy T.
  • 602
  • 4
  • 10
  • My bad. No just use "pos" – Timothy T. Dec 18 '13 at 15:46
  • String[] stringArray; is not initialize. Anyway you have to open another thread for this problem – Timothy T. Dec 18 '13 at 15:55
  • I'm having a few other issues with this build as well... mind taking a look? http://stackoverflow.com/questions/20913058/android-xml-layout-parameters-do-not-function-as-expected http://stackoverflow.com/questions/20911739/adding-a-textview-to-drag-and-drop-interface-android-java – Droidzilla Jan 03 '14 at 22:24