私は、コンテナがFrameLayoutであるアクティビティを持っています。そのコンテナにフラグメントを追加する必要がありますが、そうするとIllegalStateExceptionがスローされ、自分のアクティビティが破棄されます。フラグメントを追加するとアクティビティが破棄されます
これは、活動レイアウトの私のコンテナです:
<FrameLayout
android:id="@+id/seeMoreContainer"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
これは私が活動
PlacesSeeMoreFragment placesSeeMoreFragment = new PlacesSeeMoreFragment();
Bundle bundle = new Bundle();
bundle.putInt(PlacesSeeMoreFragment.KEY, poiID);
placesSeeMoreFragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction().add(R.id.seeMoreContainer,
placesSeeMoreFragment).commit();
にフラグメントを追加し、これはlogcat
java.lang.IllegalStateException: Activity has been destroyed
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1515)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:634)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:613)
at net.ilb.Activities.PlacesActivity.openPlaceSeeMore(PlacesActivity.java:140)
は何であるかであります私はここで間違っていますか?
EDIT:
私はこれが全体の方法
public void openPlaceSeeMore(int poiID){
PlacesSeeMoreFragment placesSeeMoreFragment = new PlacesSeeMoreFragment();
Bundle bundle = new Bundle();
bundle.putInt(PlacesSeeMoreFragment.KEY, poiID);
placesSeeMoreFragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction().add(R.id.seeMoreContainer, placesSeeMoreFragment).commit();
}
であり、これはどのようにあるリストビュー
のonItemClickListenerから呼び出すパブリックメソッドから活動にフラグメントを追加このメソッドは呼び出されます
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
PlacesActivity placesActivity = new PlacesActivity();
placesActivity.openPlaceSeeMore(poi.getId());
}
});
この行は何ですかPlacesActivity.java:140? – k0sh
@ k0shこれは次の行です。 getSupportFragmentManager()。beginTransaction()。add(R.id.seeMoreContainer、 placesSeeMoreFragment).commit(); –