Wie aufzublasen LinearLayout in einem fragment?
Möchte ich aufblasen LinearLayout
in einem fragment in der "onCreateView-Methode". Aber ich habe immer den gleichen Fehler:
"android.view.InflateException: Binary XML file line #7: Error inflating class fragment"
Ich bin mit der android.support.v4.app.FragmentActivity
im "libs"
Ordner.
Haupttätigkeit:
public class GeofranceDeptActivity extends FragmentActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dept);
}
}
Haupt-xml-Datei dept
:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment class="dauran.geofrance.DeptFragment"
android:id="@+id/depts" android:layout_weight="1"
android:layout_width="0px"
android:layout_height="match_parent">
</fragment>
<FrameLayout android:id="@+id/detailsdept" android:layout_weight="1"
android:layout_width="0px"
android:layout_height="match_parent" />
</LinearLayout>
Klasse für das fragment DeptFragment
:
public class DeptFragment extends Fragment implements OnTouchListener{
Context mContext = getActivity();
boolean mDualPane;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
return (LinearLayout)inflater.inflate(R.layout.dept_fragment, container, false);
}
@Override
public void onActivityCreated(Bundle savedState) {
................etc
Die xml-Datei dept_fragment
möchte ich aufblasen :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/targetDeptImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/region_france_grand" />
<ImageView
android:id="@+id/cacheDeptImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/region_france_grand" />
<Spinner
android:id="@+id/sDepartement"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignRight="@+id/targetImage" />
</RelativeLayout>
</LinearLayout>
Den Logcat
:
06-26 19:02:27.940: E/AndroidRuntime(11993): FATAL EXCEPTION: main
06-26 19:02:27.940: E/AndroidRuntime(11993): java.lang.RuntimeException: Unable to start activity ComponentInfo{dauran.geofrance/dauran.geofrance.GeofranceDeptActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.app.ActivityThread.access$600(ActivityThread.java:123)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.os.Handler.dispatchMessage(Handler.java:99)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.os.Looper.loop(Looper.java:137)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.app.ActivityThread.main(ActivityThread.java:4424)
06-26 19:02:27.940: E/AndroidRuntime(11993): at java.lang.reflect.Method.invokeNative(Native Method)
06-26 19:02:27.940: E/AndroidRuntime(11993): at java.lang.reflect.Method.invoke(Method.java:511)
06-26 19:02:27.940: E/AndroidRuntime(11993): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-26 19:02:27.940: E/AndroidRuntime(11993): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-26 19:02:27.940: E/AndroidRuntime(11993): at dalvik.system.NativeStart.main(Native Method)
06-26 19:02:27.940: E/AndroidRuntime(11993): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
06-26 19:02:27.940: E/AndroidRuntime(11993): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.app.Activity.setContentView(Activity.java:1835)
06-26 19:02:27.940: E/AndroidRuntime(11993): at dauran.geofrance.GeofranceDeptActivity.onCreate(GeofranceDeptActivity.java:10)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.app.Activity.performCreate(Activity.java:4465)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
06-26 19:02:27.940: E/AndroidRuntime(11993): ... 11 more
06-26 19:02:27.940: E/AndroidRuntime(11993): Caused by: java.lang.IllegalStateException: Fragment dauran.geofrance.DeptFragment did not create a view.
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:293)
06-26 19:02:27.940: E/AndroidRuntime(11993): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)
InformationsquelleAutor user1298799 | 2012-06-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
Logcat
wahrscheinlich sagt mehr als android.Blick.InflateException: Binary XML file line #7: Error inflating class-fragment(schauen Sie unten, um zu sehen, wenn Sie nicht über eine Instanziierung Ausnahme, vielleicht könnte man hinzufügen, die vollständige Ausnahme?). Nach einem Blick auf deinen code würde ich davon ausgehen, dass IhreDeptFragment
ist nicht gelegen in derdauran.geofrance
Paket und weil dieses android kann es nicht finden.Auch, es gibt keine Notwendigkeit zu testen
null
diecontainer
parameter:Auch, ich sehe nicht die Notwendigkeit für die Verpackung der
RelativeLayout
mit einemLinearLayout
imR.layout.deptfragment
:Hast du die änderungen aus meiner Antwort und führen Sie dann erneut, die app? Machen Sie den gleichen Fehler? Auch wie genau funktioniert diese Fehlermeldung angezeigt: tun, starten Sie einfach die app, und die exception wird geworfen, oder Sie tun andere Dinge, neben dem, was Sie Hinzugefügt haben, in der Frage?
Es ist OK jetzt. Ich nur entfernen Sie die unnötige LinearLayout und der test auf die container-null. Ich danke Ihnen sehr für Ihre Hilfe.
InformationsquelleAutor Luksprog