构造函数未定义使用动态 ViewPager

The constructor is undefined working with dynamic ViewPager

我在 ViewPagerActivity.java

中得到 The constructor ImagePagerAdapter(ArrayList<Actors>) is undefined
// The constructor ImagePagerAdapter(ArrayList<Actors>) is undefined
ImagePagerAdapter pageradapter = new ImagePagerAdapter(fetchedList); 

我正在使用 this 教程制作一个小型照片库应用程序,其中我有两个活动,第一个 GridViewActivity 和第二个 ViewPagerActivity

我想在用户单击 GridViewActivity

中的一项时在 ViewPager activity 中显示点击的图像

我已经使用 Picasso lib

编写了将图像解析为 GridView 的代码

演员:

public class Actors implements Serializable {

    private static final long serialVersionUID = -236818675216044571L;

    private String image;

    public Actors() {
        // TODO Auto-generated constructor stub
    }

    public Actors(String image) {
        super();        
        this.image = image;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

}

为了在 ViewPager 中显示 images,我创建了另一个 class,名称为:ViewPagerActivity.java

ViewPagerActivity.java:

    public class ViewPagerActivity extends Activity {

    ......

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.view_pager);

        .....
        }


        ......

    }
}

因此,我得到了完整的 ArrayList 和一个点击的项目位置以及图像 URL,但不知道接下来要做什么才能在 ViewPager 中获取图像?

ImagePagerAdapter.java:

public class ImagePagerAdapter extends PagerAdapter {

    private List<ImageView> images;

    public ImagePagerAdapter(List<ImageView> images) {
        this.images = images;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView = images.get(position);
        container.addView(imageView);
        return imageView;
    }

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

    @Override
    public int getCount() {
        return images.size();
    }

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

你想试试看吗?所以你可以下载完整的代码here

But I am confuse, What to do next to show my GridView images into ViewPager activity.

第一步是使 GridViewActivity 扩展 Fragment 而不是 Activity。第二步是创建一个 class 扩展 FragmentPagerAdapter,覆盖 getItem(),到 return 包含 GridView

的片段

这是对你的问题的最佳答案 https://github.com/codepath/android_guides/wiki/ViewPager-with-FragmentPagerAdapter

如果您的 fetchedListActors 模型 class 的数组列表,那么您需要更改适配器构造函数

private List<Actors> images;

public ImagePagerAdapter(List<Actors> images) {
    this.images = images;
}

如果是另一个 class 的数组列表,则保留与您相同的构造函数。问题是因为构造函数中的类型不匹配的数组列表并传递了不同的数组列表。