Android 在viewpager中使用listview时出现问题?

Android 在viewpager中使用listview时出现问题?,android,listview,android-viewpager,Android,Listview,Android Viewpager,我想在viewpager的四个页面中添加一个listview,每个页面具有不同的数据。 向量页=新向量() 这里是适配器类 公共类CustomPagerAdapter扩展了PagerAdapter{ private Context mContext; private Vector<View> pages; public CustomPagerAdapter(Context context, Vector<View> pages) { this.mContext

我想在viewpager的四个页面中添加一个listview,每个页面具有不同的数据。 向量页=新向量()

这里是适配器类 公共类CustomPagerAdapter扩展了PagerAdapter{

 private Context mContext;
 private Vector<View> pages;

 public CustomPagerAdapter(Context context, Vector<View> pages) {
  this.mContext=context;
  this.pages=pages;
 }

 @Override
 public Object instantiateItem(ViewGroup container, int position) {


  View page = pages.get(position);

  container.addView(page);


  return page;
 }



 @Override
 public int getCount() {
  return 3;
 }

 @Override
 public boolean isViewFromObject(View view, Object object) {
  return view.equals(object);
 }

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

}
私有上下文mContext;
专用矢量页;
公共CustomPagerAdapter(上下文、矢量页){
this.mContext=上下文;
这个。页面=页面;
}
@凌驾
公共对象实例化项(视图组容器,int位置){
查看页面=页面。获取(位置);
container.addView(第页);
返回页面;
}
@凌驾
public int getCount(){
返回3;
}
@凌驾
公共布尔值isViewFromObject(视图,对象){
返回视图.equals(对象);
}
@凌驾
公共项(视图组容器、int位置、对象){
container.removeView((视图)对象);
}
}
强制关闭后,logcat中出现错误 指定的子级已具有父级。必须首先对子级的父级调用removeView()。任何想法请!!!!!
现在我用四个listview修改了它。。。。而且它只显示了三页!!!第四个在哪里?如果pagerviewer一次只能保存三个页面,如何删除第四个位置的第一个页面,反之亦然???

您在
实例化Item
方法的同一父级(容器)中添加了不同的视图。从
实例化Item()中删除此行


在这里,您将对所有4次使用单个列表视图对象(查看寻呼机子对象)。但这是不可接受的。不能多次添加单个视图对象

而且ViewPager一次只接受3个活动的孩子(当前可见、当前可见之前、当前可见旁边)


因此,最好每次创建新的listview对象

如果您将相同的
listAppStore
实例添加到
页面
,我错了吗

如果没有,则可能是错误的原因


您应该直接在适配器中初始化视图,而不是在适配器外部。适配器应仅提供传递到给定位置视图的数据。

首先,它显示第一页的数据,然后在滑动页面上崩溃。。。但现在它没有显示任何东西,也没有强制关闭。
 private Context mContext;
 private Vector<View> pages;

 public CustomPagerAdapter(Context context, Vector<View> pages) {
  this.mContext=context;
  this.pages=pages;
 }

 @Override
 public Object instantiateItem(ViewGroup container, int position) {


  View page = pages.get(position);

  container.addView(page);


  return page;
 }



 @Override
 public int getCount() {
  return 3;
 }

 @Override
 public boolean isViewFromObject(View view, Object object) {
  return view.equals(object);
 }

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

}
 container.addView(page);