gpt4 book ai didi

android - 如何在 viewpager 中传递 Arraylist 而不是数组中的整数

转载 作者:行者123 更新时间:2023-11-29 23:03:27 25 4
gpt4 key购买 nike

我正试图在 view pager 中从 sd 卡加载图像。我有 uri 的 arrayList。如何更改我的代码以打开这些图像而不是可绘制对象。

我的 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);
}
}
}

最佳答案

假设您有 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);
}
}
}

关于android - 如何在 viewpager 中传递 Arraylist <uri> 而不是数组中的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56757427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com