Ich habe eine Aktivität mit einem Container, der ein FrameLayout ist. Ich muss diesem Container ein Fragment hinzufügen, aber dadurch wird eine IllegalStateException ausgelöst, die meine Aktivität zerstört.Fragment hinzufügen zerstört Aktivität
Dies ist mein Behälter in der Aktivität Layout:
<FrameLayout
android:id="@+id/seeMoreContainer"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
Dies ist, wie ich das Fragment auf die Aktivität
PlacesSeeMoreFragment placesSeeMoreFragment = new PlacesSeeMoreFragment();
Bundle bundle = new Bundle();
bundle.putInt(PlacesSeeMoreFragment.KEY, poiID);
placesSeeMoreFragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction().add(R.id.seeMoreContainer,
placesSeeMoreFragment).commit();
hinzufügen Und das ist die 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)
Was mache ich hier falsch?
EDIT:
ich das Fragment auf die Aktivität von einer öffentlichen Methode hinzufügen, die ich von onItemClickListener eines Listview nennen
Das ist das ganze Verfahren
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();
}
Und so Die Methode heißt
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());
}
});
Was ist diese Zeile PlacesActivity.java:140? – k0sh
@ k0sh Es ist diese Zeile: getSupportFragmentManager(). BeginTransaction(). Add (R.id.seeMoreContainer, placesSeeMoreFragment) .commit(); –