Skip to content

IllegalStateException: The specified child already has a parent.  #15

Description

@ItsCalebJones

Setting up a pretty basic PreferenceActivity with headers that calls a PreferenceFragment.

Activity

public class SettingsActivity extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    protected final void onCreatePreferenceHeaders() {
        addPreferenceHeadersFromResource(R.xml.preference_headers);
    }
}

Fragment

public class AppearanceFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.nested_appearance_preferences);
    }

    @Override
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
        return super.onPreferenceTreeClick(preferenceScreen, preference);
    }

    @Override
    public void onPause() {
        super.onPause();
    }
}

Header

<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">

    <header
        android:fragment="me.calebjones.spacelaunchnow.settings.AppearanceFragment"
        android:icon="@drawable/ic_settings_black"
        android:title="General"
        android:summary="@string/general_settings_for_launch_tracking_and_application_behavior"
        android:breadCrumbShortTitle="breadCrumbShortTitle"
        android:breadCrumbTitle="breadCrumbTitle" />
    <header
        android:fragment="me.calebjones.spacelaunchnow.settings.AppearanceFragment"
        android:icon="@drawable/ic_notifications"
        android:title="Notifications"
        android:summary="Set up launch notifications and scheduling."/>
    <header
        android:fragment="me.calebjones.spacelaunchnow.settings.AppearanceFragment"
        android:icon="@drawable/ic_color_picker"
        android:title="Appearance"
        android:summary="Customize app theme and colors."/>
    <header
        android:fragment="me.calebjones.spacelaunchnow.settings.AppearanceFragment"
        android:icon="@drawable/ic_wear"
        android:title="Wear"
        android:summary="Change Android Wear watch face settings."/>
    <header
        android:icon="@drawable/ic_about_black"
        android:summary="Application information about license, libraries, changelog, etc"
        android:title="About">
        <intent
            android:targetClass="me.calebjones.spacelaunchnow.ui.activity.AboutActivity"
            android:targetPackage="me.calebjones.spacelaunchnow.ui.activity"/>
    </header>
    <header
        android:icon="@drawable/ic_support_black"
        android:summary="Follow my projects and contribute to future development."
        android:title="Support">
        <intent
            android:targetClass="me.calebjones.spacelaunchnow.supporter.SupporterActivity"
            android:targetPackage="me.calebjones.spacelaunchnow.supporter"/>
    </header>

</preference-headers>

And i'm getting this when clicking on an item:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: me.calebjones.spacelaunchnow.debug, PID: 32224
                  java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
                      at android.view.ViewGroup.addViewInner(ViewGroup.java:4454)
                      at android.view.ViewGroup.addView(ViewGroup.java:4295)
                      at android.view.ViewGroup.addView(ViewGroup.java:4252)
                      at de.mrapp.android.preference.activity.PreferenceFragment.initializeListView(PreferenceFragment.java:147)
                      at de.mrapp.android.preference.activity.PreferenceFragment.onCreateView(PreferenceFragment.java:719)
                      at android.app.Fragment.performCreateView(Fragment.java:2352)
                      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:995)
                      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171)
                      at android.app.BackStackRecord.run(BackStackRecord.java:815)
                      at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578)
                      at android.app.FragmentManagerImpl$1.run(FragmentManager.java:483)
                      at android.os.Handler.handleCallback(Handler.java:751)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6077)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions