Пользовательский адаптер для метода getView галереи, запущенный несколько раз

Я сделал галерею, в которой я показываю изображение, я установил пользовательский адаптер на галерее. когда я запускаю приложение, оно работает правильно, но метод getView пользовательского адаптера выполняется несколько раз, так как он вызывает количество раз, но я вызывал его только один раз. Ниже мой код.

gallery.setAdapter(new ImageAdapter(this));

Приведенная выше строка устанавливает пользовательский адаптер для галереи.

public class ImageAdapter extends BaseAdapter {
    int mGalleryItemBackground;
    private Context mContext;

    public ImageAdapter(Context c) 
    {
        mContext = c;
        TypedArray attr = mContext.obtainStyledAttributes(R.styleable.HelloGallery);
        mGalleryItemBackground = attr.getResourceId(R.styleable.HelloGallery_android_galleryItemBackground, 0);
        attr.recycle();
    }

    public int getCount() 
    {
        return mImageIds.length;
    }

    public Object getItem(int position)
    {
        return position;
    }

    public long getItemId(int position) 
    {
        tv.setText(names[position]);

        previousButton.setClickable(true);

        nextButton.setClickable(true);

        if (position == 0)
        {
            previousButton.setClickable(false);
        } 
        else if (position == 111)
        {
            nextButton.setClickable(false);
        }


        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {

                     System.out.println("getview method::  "+ viewCheck++);

        ImageView imageView = new ImageView(mContext);

        imageView.setImageResource(mImageIds[position]);

        Display display = getWindowManager().getDefaultDisplay();
        int width = display.getWidth();
        int height = display.getHeight();

        if (width >= 720 && height >= 1280) 
        {
        imageView.setLayoutParams(new Gallery.LayoutParams(720, 680));
        } 
        else if (width >= 480 && height >= 800) 
        {
        imageView.setLayoutParams(new Gallery.LayoutParams(480, 440));
        }
        else if (width >= 320 && height >= 480) 
        {
        imageView.setLayoutParams(new Gallery.LayoutParams(320, 250));
        }

        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        imageView.setBackgroundResource(mGalleryItemBackground);

        return imageView;
    }
}

0 ответов

Другие вопросы по тегам