как передать Arraylist <uri>в целое число в массиве в viewpager - PullRequest
1 голос
/ 25 июня 2019

Я пытаюсь загрузить изображения с SD-карты в представлении пейджер.У меня есть список массивов URI.Как изменить мой код, чтобы открывать эти изображения вместо рисованных.

мой класс mainAvtivity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.view_pager);
    mCustomPageAdapter = new CustomPageAdapter(this);
    viewPager = (ViewPager) findViewById(R.id.pager);
    viewPager.setAdapter(mCustomPageAdapter);
}
public class CustomPageAdapter extends PagerAdapter {
    Context mContext;
    LayoutInflater mLayoutInflater;
    public CustomPageAdapter(Context context) {
        mContext = context;
        mLayoutInflater=(LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    @Override
    public int getCount() {
        return resourceIDs.length;
    }
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == ((LinearLayout) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        View itemView = mLayoutInflater.inflate(R.layout.pager_item,container, false);
        ImageView imageView = (ImageView)itemView.findViewById(R.id.imageView);
        imageView.setImageResource(resourceIDs[position]);
        container.addView(itemView);
        return itemView;
    }

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

1 Ответ

1 голос
/ 25 июня 2019

Допустим, у вас есть ArrayList<Uri> uriList.Теперь измените код следующим образом:

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view_pager);
        mCustomPageAdapter = new CustomPageAdapter(this);
        viewPager = (ViewPager) findViewById(R.id.pager);
        viewPager.setAdapter(mCustomPageAdapter);
    }
    public class CustomPageAdapter extends PagerAdapter {
        Context mContext;
        LayoutInflater mLayoutInflater;
        public CustomPageAdapter(Context context) {
            mContext = context;
            mLayoutInflater=(LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }
        @Override
        public int getCount() {
            return uriList.size();
        }
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == ((LinearLayout) object);
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            View itemView = mLayoutInflater.inflate(R.layout.pager_item,container, false);
            ImageView imageView = (ImageView)itemView.findViewById(R.id.imageView);
            imageView.setImageURI((uriList.get(position));
            container.addView(itemView);
            return itemView;
        }

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