사용자 설정에 따라 런타임 중에 동적으로 생성되는 여러 개의 Fragment가있는 FragmentPagerAdapter가 있습니다.FragmentPagerAdapter 내부의 조각 일부를 바꿉니다.
사용자 설정에 따라 각 단편의 일부를 다른 단편으로 대체해야합니다 (때로는 단편에 단락 막대를 추가해야하는 경우도 있음). 문제는
OverviewProgressElementFragment fragment = new OverviewProgressElementFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.pBarContainer, fragment);
ft.commit();
,이 예외가 발생 FragmentTransaction ft = getFragmentManager().beginTransaction();
이 줄 것을 :
10-18 17:51:57.822: E/AndroidRuntime(1877): FATAL EXCEPTION: main
10-18 17:51:57.822: E/AndroidRuntime(1877): java.lang.NullPointerException
10-18 17:51:57.822: E/AndroidRuntime(1877): at com.xxx.xxx.OverviewEntityFragment.SetEntity(OverviewEntityFragment.java:119) <- the method in which I call the transaction
10-18 17:51:57.822: E/AndroidRuntime(1877): at com.xxx.xxx.PageAdapter.getItem(PageAdapter.java:27)
10-18 17:51:57.822: E/AndroidRuntime(1877): at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:97)
10-18 17:51:57.822: E/AndroidRuntime(1877): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:832)
10-18 17:51:57.822: E/AndroidRuntime(1877): at android.support.v4.view.ViewPager.populate(ViewPager.java:982)
내 hierachy가 다음입니다 :
MainActivity가 포함
이 내 대체 코드입니다 FragmentTabHost
부분적으로 조각 콘텐츠를 교체 할려고 할 때 'Subfragment'동적
오류는 3 부에 occures로드해야
조각> 조각 -> FragmentPagerAdapter - ViewPager를 포함
하나 개의 탭.
@Override
public Fragment getItem(int position)
{
OverviewEntityFragment oeFragment = new OverviewEntityFragment();
oeFragment.SetEntity(_entityList.get(position));
return oeFragment;
}
예외가 SetEntity()
-Method에 occures : 여기
public void SetEntity(OverviewEntityData entityData)
{
FragmentTransaction ft = getFragmentManager().beginTransaction();
}
이 같은 hierachy에서 조각의 부품을 교체 할 수 없습니다 또는 내가 뭔가 잘못하고있는 중이 야 : 난 그냥 쓸 때
이public void SetEntity(OverviewEntityData entityData)
{
_entityData = entityData;
if ((_entityData.getEntityType() != ENTITY_TYPE.MEMORY)
&& (_entityData.getEntityType() != ENTITY_TYPE.NO_PAGE_FOUND))
{
OverviewProgressElementFragment fragment = new OverviewProgressElementFragment();
fragment.SetEntityData(_entityData);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.pBarContainer, fragment);
ft.commit();
}
}
예외는 occures :이 코드는?
정말 도움이됩니다.
편집 :
나는getChildFragmentManager()
을 사용하려고하지만,이 예외 다음 발생 :
10-18 19:02:48.622: E/AndroidRuntime(2056): FATAL EXCEPTION: main
10-18 19:02:48.622: E/AndroidRuntime(2056): java.lang.IllegalStateException: Activity has been destroyed
10-18 19:02:48.622: E/AndroidRuntime(2056): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1358)
10-18 19:02:48.622: E/AndroidRuntime(2056): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
10-18 19:02:48.622: E/AndroidRuntime(2056): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
10-18 19:02:48.622: E/AndroidRuntime(2056): at com.xxx.xxx.OverviewEntityFragment.SetEntity(OverviewEntityFragment.java:121)
10-18 19:02:48.622: E/AndroidRuntime(2056): at com.xxx.xxx.PageAdapter.getItem(PageAdapter.java:27)
10-18 19:02:48.622: E/AndroidRuntime(2056): at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:97)
답장을 보내 주셔서 감사합니다.하지만 내 조각 내에서 getChildFragmentManager()를 사용하면 다른 예외가 발생합니다. 원래 게시물을 업데이트했습니다. – user1567896