构造函数未定义使用动态 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
如果您的 fetchedList
是 Actors
模型 class 的数组列表,那么您需要更改适配器构造函数
private List<Actors> images;
public ImagePagerAdapter(List<Actors> images) {
this.images = images;
}
如果是另一个 class 的数组列表,则保留与您相同的构造函数。问题是因为构造函数中的类型不匹配的数组列表并传递了不同的数组列表。
我在 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
如果您的 fetchedList
是 Actors
模型 class 的数组列表,那么您需要更改适配器构造函数
private List<Actors> images;
public ImagePagerAdapter(List<Actors> images) {
this.images = images;
}
如果是另一个 class 的数组列表,则保留与您相同的构造函数。问题是因为构造函数中的类型不匹配的数组列表并传递了不同的数组列表。