ImagePagerAdapter - The constructor is never used locally / The value of the field is not used

1.4k Views Asked by At

I'm having a bit of trouble implementing my ImagePagerAdapter - I believe I have not implemented it correctly due to the following two warnings:

The constructor Home.ImagePagerAdapter(Activity, int[], String[]) is never used locally 

&

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

I'm not sure exactly what I've done wrong (it is my first time building anything using a PagerAdapter).

JAVA

   public class Home extends YouTubeBaseActivity implements

    VideoClickListener {
        ...
        private int mCurrentTabPosition = NO_CURRENT_POSITION;
        private static final int NO_CURRENT_POSITION = -1;
        private ViewPager mPager;
        ...
        int imageArray[];
        String[] stringArray;

        private OnPageChangeListener mPageChangeListener;
        ImagePagerAdapter adapter = new ImagePagerAdapter();

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.home);

            final ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);

            viewPager.setAdapter(adapter);
    ...

            setOnPageChangeListener(mPageChangeListener);


            mPageChangeListener = new ViewPager.SimpleOnPageChangeListener() {


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

                        System.out.print(position);
                        // Moving to the right
                        String playlist = "TheMozARTGROUP‎";
                        new GetYouTubeUserVideosTask(responseHandler, playlist)
                                .execute();

                        View vg = findViewById(R.layout.home);
                        vg.invalidate();

                    } else if (position < oldPos) {
                        // Moving to the Left
                        System.out.print(position);
                        String playlist = "TheMozARTGROUP‎";
                        new GetYouTubeUserVideosTask(responseHandler, playlist)
                                .execute();

                        View vg = findViewById(R.layout.home);
                        vg.invalidate();

                    }
                    viewPager.setOnPageChangeListener(mPageChangeListener);
                }

                private void onTabChanged(PagerAdapter adapter,
                        int mCurrentTabPosition, int position) {
                    // TODO Auto-generated method stub

                }
            };

        }

        private void setOnPageChangeListener(
                OnPageChangeListener mPageChangeListener2) {
            // TODO Auto-generated method stub

        }

        ...



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

            // this is your constructor
            public ImagePagerAdapter() {
                super();

            }

            private int[] mImages = new int[] { R.drawable.selstation_up_btn,
                    R.drawable.classical_up_btn, R.drawable.country_up_btn,
                    R.drawable.dance_up_btn, R.drawable.hiphop_up_btn,
                    R.drawable.island_up_btn, R.drawable.latin_up_btn,
                    R.drawable.pop_up_btn, R.drawable.samba_up_btn };

            private String[] stringArray = new String[] { "vevo",
                    "TheMozARTGROUP‎", "TimMcGrawVEVO‎", "TiestoVEVO‎",
                    "EminemVEVO‎" };

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

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

            protected void onTabChanged(final PagerAdapter adapter,
                    final int oldPosition, final int newPosition) {
                // Calc if swipe was left to right, or right to left
                if (oldPosition > newPosition) {
                    // left to right
                } else {
                    // right to left


                }
                final ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);

            }
        }
    }

Any suggestions are greatly appreciated.

1

There are 1 best solutions below

0
On

For the first error delete the default constructor

           // this is your constructor
        public ImagePagerAdapter() {
            super();

        }

For the second error, In your constructor, you are assigning

 stringArray = stringArra;

And then you reassign it later below:

            private String[] stringArray = new String[] { "vevo",
                "TheMozARTGROUP‎", "TimMcGrawVEVO‎", "TiestoVEVO‎",
                "EminemVEVO‎" };

Either don't reassign it and use the existing array, or remove "stringarra" from your constructor.