Note that there are some explanatory texts on larger screens.

plurals
  1. POViewPager removeView() on the child's parent first
    primarykey
    data
    text
    <p>I'm currently testing out the viewpager in Android. Created a custom adapter, but I got this error when I tried to swipe the viewpager. Could anyone help me with this? </p> <pre><code>public class ViewPagerAdapter extends PagerAdapter { Context context; int[] flag; LayoutInflater inflater; public ViewPagerAdapter(Context context, int[] flag) { this.context = context; this.flag = flag; } @Override public int getCount() { return flag.length; } @Override public boolean isViewFromObject(View view, Object object) { return view == ((ImageView) object); } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imgflag; inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View itemView = inflater.inflate(R.layout.viewpager_item, container, false); //ImageView imageView = new ImageView(context); //imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); //imageView.findViewById(R.id.flag); imgflag = (ImageView) itemView.findViewById(R.id.flag); imgflag.setImageResource(flag[position]); ((ViewPager) container).addView(imgflag); return imgflag; } @Override public void destroyItem(ViewGroup container, int position, Object object) { ((ViewPager) container).removeView((ImageView) object); } </code></pre> <p>LOGCAT : </p> <pre><code>05-02 10:35:26.926: E/AndroidRuntime(4939): FATAL EXCEPTION: main 05-02 10:35:26.926: E/AndroidRuntime(4939): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. </code></pre> <hr> <p>Edits Suggested By Richard:</p> <pre><code>public class ViewPagerAdapter extends PagerAdapter { Context context; int[] flag; LayoutInflater inflater; ImageView imgflag; View itemView; public ViewPagerAdapter(Context context, int[] flag) { this.context = context; this.flag = flag; } @Override public int getCount() { return flag.length; } @Override public boolean isViewFromObject(View view, Object object) { return view == ((ImageView) object); } @Override public Object instantiateItem(ViewGroup container, int position) { inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); itemView = inflater.inflate(R.layout.viewpager_item, container, false); //ImageView imageView = new ImageView(context); //imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); //imageView.findViewById(R.id.flag); imgflag = (ImageView) itemView.findViewById(R.id.flag); imgflag.setImageResource(flag[position]); ((ViewPager) container).addView(itemView); //return imgflag; return itemView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { //((ViewPager) container).removeView((ImageView) object); ((ViewPager) container).removeView(itemView); //((ViewGroup)imgflag.getParent()).removeView(imgflag); } </code></pre> <p>}</p> <p>LOGCAT :</p> <pre><code>05-02 10:55:42.786: E/AndroidRuntime(7763): FATAL EXCEPTION: main 05-02 10:55:42.786: E/AndroidRuntime(7763): java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.ImageView </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload