ViewPager
動的な数のフラグメントを使用して を作成しています。次のようにFragmentStatePagerAdapter
、これViewPager
にフラグメントのリストを提供します。
public class LightPageAdapter extends FragmentStatePagerAdapter {
private List<Fragment> myFragments;
public LightPageAdapter(FragmentManager fragmentManager, List<Fragment> fragments) {
super(fragmentManager);
myFragments = fragments;
}
public Fragment getItem(int i) {
return myFragments.get(i);
}
@Override
public int getCount() {
return myFragments.size();
}
}
特定のボタンをクリックするとフラグメントリストが取得されるので、このフラグメントリストをに追加するためにFragment
、次のメソッドをこれに追加しました。Fragment
FragmentStatePagerAdapter
public void fargmenting(List<Fragment> fragments){
ViewPager view_pager = (ViewPager) MyFragment.view.findViewById(R.id.lighting_pager);
view_pager.setAdapter(new LightPageAdapter(getChildFragmentManager(), fragments)); // this is where I'm getting the Exception
}
ヒント: 私のアプリではVerticalViewPager
notを使用していますが、これは と同じ動作をViewPager
するライブラリViewPager
ですが、プロセス全体に影響を与えない変更が加えられています。
そして、これはログエラーです:
05-07 11:51:02.404: E/AndroidRuntime(3174): FATAL EXCEPTION: main
05-07 11:51:02.404: E/AndroidRuntime(3174): java.lang.IllegalStateException: Activity has been destroyed
05-07 11:51:02.404: E/AndroidRuntime(3174): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1365)
05-07 11:51:02.404: E/AndroidRuntime(3174): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
05-07 11:51:02.404: E/AndroidRuntime(3174): at android.support.v4.app.BackStackRecord.commitAllowingStateLoss(BackStackRecord.java:578)
05-07 11:51:02.404: E/AndroidRuntime(3174): at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:161)
05-07 11:51:02.404: E/AndroidRuntime(3174): at com.automation.standards.VerticalViewPager.populate(VerticalViewPager.java:965)
05-07 11:51:02.404: E/AndroidRuntime(3174): at com.automation.standards.VerticalViewPager.populate(VerticalViewPager.java:811)
05-07 11:51:02.404: E/AndroidRuntime(3174): at com.automation.standards.VerticalViewPager.setAdapter(VerticalViewPager.java:334)
05-07 11:51:02.404: E/AndroidRuntime(3174): at com.automation.fragments.MyFragment.fargmenting(Lighting_Right.java:92)
05-07 11:51:02.404: E/AndroidRuntime(3174): at com.automation.isolace.Lighting.assign_vertical_gangs_swipping(Lighting.java:502)
05-07 11:51:02.404: E/AndroidRuntime(3174): at com.automation.isolace.Lighting.select_room(Lighting.java:403)
05-07 11:51:02.404: E/AndroidRuntime(3174): at com.automation.isolace.Lighting$11.onClick(Lighting.java:351)
05-07 11:51:02.404: E/AndroidRuntime(3174): at android.view.View.performClick(View.java:4084)
05-07 11:51:02.404: E/AndroidRuntime(3174): at android.view.View$PerformClick.run(View.java:16966)
05-07 11:51:02.404: E/AndroidRuntime(3174): at android.os.Handler.handleCallback(Handler.java:615)
05-07 11:51:02.404: E/AndroidRuntime(3174): at android.os.Handler.dispatchMessage(Handler.java:92)
05-07 11:51:02.404: E/AndroidRuntime(3174): at android.os.Looper.loop(Looper.java:137)
05-07 11:51:02.404: E/AndroidRuntime(3174): at android.app.ActivityThread.main(ActivityThread.java:4745)
05-07 11:51:02.404: E/AndroidRuntime(3174): at java.lang.reflect.Method.invokeNative(Native Method)
05-07 11:51:02.404: E/AndroidRuntime(3174): at java.lang.reflect.Method.invoke(Method.java:511)
05-07 11:51:02.404: E/AndroidRuntime(3174): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
05-07 11:51:02.404: E/AndroidRuntime(3174): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
05-07 11:51:02.404: E/AndroidRuntime(3174): at dalvik.system.NativeStart.main(Native Method)