I'm not able to get rid of this error, no matter how many solutions I applied.
************ CAUSE OF ERROR ************ java.lang.IllegalStateException: Fragment b{4210f838} is not currently in the FragmentManager at android.support.v4.app.i.a(FragmentManager.java:603) at android.support.v4.app.j.a(FragmentStatePagerAdapter.java:136) at android.support.v4.view.ViewPager.b(ViewPager.java:874) at android.support.v4.view.ViewPager$h.onChanged(ViewPager.java:2824) at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37) at android.support.v4.view.k.c(PagerAdapter.java:276) at com.xyz.Activity2$2.a(Activity2.java:351) at com.a.a.d$1.onAnimationEnd(ParallelAnimator.java:73) at android.animation.AnimatorSet$AnimatorSetListener.onAnimationEnd(AnimatorSet.java:765) at android.animation.AnimatorSet$AnimatorSetListener.onAnimationEnd(AnimatorSet.java:765) at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1018) at android.animation.ValueAnimator.access$400(ValueAnimator.java:51) at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:623) at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:639) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) at android.view.Choreographer.doCallbacks(Choreographer.java:555) at android.view.Choreographer.doFrame(Choreographer.java:524) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4898) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) at dalvik.system.NativeStart.main(Native Method)
Code I'm using:
public class PlaceSlidesFragmentAdapter extends FragmentStatePagerAdapter implements IconPagerAdapter {
private List<String> imgList;
Activity activity;
public PlaceSlidesFragmentAdapter(Activity act, FragmentManager fm) {
super(fm);
imgList = new ArrayList<String>();
activity= act;
}
public void addImage(String imgUrl)
{
imgList.add(imgUrl);
}
public void addAllImages()
{
for(All Image URLs)
{
addImage(s);
}
}
public void removeAllImages()
{
imgList.clear();
}
public String getImageName(int pos)
{
return imgList.get(pos);
}
@Override
public Fragment getItem(int position) {
return new PlaceSlideFragment(imgList.get(position));
}
@Override
public int getCount() {
return imgList.size();
}
@Override
public int getIconResId(int index) {
return 0;
}
@Override
public int getItemPosition(Object object){
return PagerAdapter.POSITION_NONE;
}
}
I'm getting error on calling onNotifyDataSetChanged(). Basically I've this viewpager in an activity and I add/remove fragments dynamically on runtime.Using this:
mAdapter.removeAllImages();
mAdapter.addAllImages();
mAdapter.notifyDataSetChanged();
The crash occurs over 20-times per day with ~500-700 users/day. I'm not able to reproduce it on my system yet. Let me know if you need any other information.
If anybody could help through this. It would be a great help. Thanks
Edit:
// set-up image view-pager
mAdapter = new PlaceSlidesFragmentAdapter(this, getSupportFragmentManager());
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);