Fehler beim Aufblasen des Klassenfragments | Fragment hat keine Ansicht erstellt

Ich habe dieses Problem:

android.view.InflateException: Binäre XML-Datei Zeile 31: Fehler beim Aufblasen des Klassenfragments Das Fragment com.myapp.mgm.QueryFragment hat keine Ansicht erstellt.

Dieses Problem tritt nur im Tablet-Modus auf. Wenn die App auf dem Telefon ausgeführt wird, funktioniert sie in Ordnung.

ich habe daslayout-large XML-Datei (fragments.xml):

<android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/lightgrey">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="@color/lightgrey"
              android:baselineAligned="false">

    <fragment
            android:name="com.myapp.mgm.QueryFragment"
            android:id="@+id/fragment1"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            tools:layout="@layout/nu"/>

    <fragment
            android:name="com.myapp.mgm.Infodata"
            android:id="@+id/fragment2"
            android:layout_weight="2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            tools:layout="@layout/maindata"/>

</LinearLayout>
        <ListView
                android:id="@+id/list_slidermenu"
                android:layout_width="240dp"
                android:layout_height="match_parent"
                android:layout_gravity="start"
                android:choiceMode="singleChoice"
                android:divider="@color/orange"
                android:dividerHeight="1dp"
                android:listSelector="@drawable/menulist_selector"
                android:background="@color/lblack"/>
</android.support.v4.widget.DrawerLayout>

Wie Sie sehen, habe ich zwei Fragmente und eine Navigationsleiste in meinem Layout.

Die Klasse, die all dies zusammenfasst, ist die folgende:

public class Fragments extends ActionBarActivity implements QueryFragment.OnQuerySelectedListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragments);

        slidingMenu();

        if (findViewById(R.id.fragmentsboth) != null) {
            if (savedInstanceState != null) {
                return;
            }
            QueryFragment firstFragment = new QueryFragment();
            getSupportFragmentManager().beginTransaction().add(R.id.fragmentsboth, firstFragment).commit();
        }
    }
}

Und meinQueryFragment&nbsp;Klasse ist das:

public class QueryFragment extends ListFragment {
    public interface OnQuerySelectedListener {
        public void onItemSelected(Bundle itemSelectedData);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        operation = Fragments.operation;
        if (operation == 0) {
            layoutToShow = inflater.inflate(R.layout.querylist, container, false);
            ...
        } else if (operation == 1) {
            layoutToShow = inflater.inflate(R.layout.querylist, container, false);
            ...
        } else if (operation == 2) {
            layoutToShow = inflater.inflate(R.layout.search, container, false);
            ...
        } else if (operation == 3) {
            layoutToShow = inflater.inflate(R.layout.nu, container, false);
            ...
        }
        return layoutToShow;
    }

}

Und meinInfoData&nbsp;Klasse wie dieses Zeug:

public class Infodata extends Fragment implements OnSeekBarChangeListener, OnItemSelectedListener {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        setHasOptionsMenu(true);

        View itemDataLayout = inflater.inflate(R.layout.maindata, container, false);
        ....

        if (savedInstanceState != null && savedInstanceState.size()>=2) {
            layoutType = savedInstanceState.getInt("layout");
            comesFromSavedState = true;
            itemData = savedInstanceState;
        }
        return itemDataLayout;
    }

    @Override
    public void onStart() {
        super.onStart();

        Bundle args = getArguments();
        if (args != null) {
            populateLayoutWithData(1, args);
        } else if(comesFromSavedState){
            populateLayoutWithData(2, itemData);
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        //Saves stuff (data) in a bundle to restore after screen rotation
    }   
}

Grundsätzlich habe ich einelistview&nbsp;auf dem linken Fragment (QueryFragment) und nachdem der Benutzer eines der Elemente (einen Cursor mit Daten) ausgewählt hat, wird das rechte Fragment (InfoData) wird mit den extrahierten Daten dieses Cursors gefüllt. Wenn ich ein intem aus dem linken Fragment auswähle und es Daten sind, werden diese auf dem rechten Fragment gefüllt, da ich Daten auf speichereonSaveInstanceStateWenn ich den Bildschirm drehe, funktioniert alles in Ordnung, dh, die Daten werden auf das richtige Fragment geladen.

Nun mein Navigadion Drawer als 4 Optionen. Jede dieser Optionen lädt alistView&nbsp;auf dem linken Fragment und dann, wie zuvor, wenn der Benutzer eines dieser Elemente auswählt, werden seine Daten auf das rechte Fragment geladen.

Hier ist der Code, der dies in meinem behandeltFragments&nbsp;Klasse:

private void selectItem(int position) {
    int typeOfLayout;
    mDrawerList.setItemChecked(position, true);
    mDrawerLayout.closeDrawer(mDrawerList);
    QueryFragment newFragment;
    FragmentTransaction transaction;

    ViewGroup parentView = (ViewGroup) findViewById(R.id.fragmentsboth);

    if (parentView != null) {
        typeOfLayout = R.id.fragmentsboth;
    } else {
        typeOfLayout = R.id.fragment1;
    }

    switch (position) {
        case 0:
            Intent i = new Intent(this, NutriData.class);
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(i);
            finish();
            break;
        case 1:
            newFragment = new QueryFragment();
            operation = 0;
            transaction = getSupportFragmentManager().beginTransaction();
            transaction.replace(typeOfLayout, newFragment).commit();
            break;
        case 2:
            newFragment = new QueryFragment();
            operation = 1;
            transaction = getSupportFragmentManager().beginTransaction();
            transaction.replace(typeOfLayout, newFragment).commit();
            break;
        case 3:
            newFragment = new QueryFragment();
            operation = 2;
            transaction = getSupportFragmentManager().beginTransaction();
            transaction.replace(typeOfLayout, newFragment).commit();
            break;
        case 4:
            newFragment = new QueryFragment();
            operation = 3;
            transaction = getSupportFragmentManager().beginTransaction();
            transaction.replace(typeOfLayout, newFragment).commit();
            break;
    }
}

Stellen Sie sich dieses Szenario vor:

Ich bekam einlistViewmit dem Element auf dem linken Fragment und wählen Sie dann eines dieser Elemente. Dann werden die Daten an das richtige Fragment übergeben, das sie an die richtige Stelle setzt. Wenn ich den Bildschirm drehe, werden die Daten gespeichert und nach dem Drehen wird das rechte Fragment neu geladen. Jetzt öffne ich die Navigationsleiste und wähle eine der Optionen (1,2,3 oder 4) und es ist entsprechendlistView&nbsp;wird auf das linke Fragment geladen. Das rechte Fragment zeigt weiterhin die Daten des ersten Elements an, das der Benutzer ausgewählt hat. Jetzt drücke ich auf ein neues Element auf dem linken Fragment und die Daten werden auf das rechte Fragment geladen. Süss. Es funktioniert so, wie ich es wollte. Das Problem ist, wenn ich jetzt meinen Bildschirm drehe. Ich erhalte diesen Fehler:

01-01 15:51:16.356    2569-2569/com.myapp.mgm E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.mgm/com.myapp.mgm.Fragments}: android.view.InflateException: Binary XML file line #31: Error inflating class fragment
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
            at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3740)
            at android.app.ActivityThread.access$700(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5103)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.view.InflateException: Binary XML file line #31: Error inflating class fragment
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267)
            at android.app.Activity.setContentView(Activity.java:1895)
            at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:208)
            at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)
            at com.myapp.mgm.Fragments.onCreate(Fragments.java:27)
            at android.app.Activity.performCreate(Activity.java:5133)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3740)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread.access$700(ActivityThread.java:141)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.os.Handler.dispatchMessage(Handler.java:99)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.os.Looper.loop(Looper.java:137)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread.main(ActivityThread.java:5103)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invokeNative(Native Method)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:525)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.IllegalStateException: Fragment com.myapp.mgm.QueryFragment did not create a view.
            at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:308)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.Activity.setContentView(Activity.java:1895)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:208)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at com.myapp.mgm.Fragments.onCreate(Fragments.java:27)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.Activity.performCreate(Activity.java:5133)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3740)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread.access$700(ActivityThread.java:141)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.os.Handler.dispatchMessage(Handler.java:99)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.os.Looper.loop(Looper.java:137)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at android.app.ActivityThread.main(ActivityThread.java:5103)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invokeNative(Native Method)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:525)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at dalvik.system.NativeStart.main(Native Method)

Kann mir bitte jemand erklären, was ich falsch mache?