在我的应用程序中,我想做以下事情:我想在片段中放置一个列表视图,当我单击任何项目时,它应该将我移动到其他片段,这个片段是相同的,因为我想阅读每个项目的提要并在另一个称为详细片段的片段中显示它,我在互联网上看到了这个例子,我一步一步地做,但是在运行时我有一个异常,请告诉我为什么会发生这个异常,我有 4 个类, ,关于 xml 文件,我有 2 个第一个名称为 layout-land 的文件,代码如下:
<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="com.example.android.apis.app.FragmentLayout$TitlesFragment"
android:id="@+id/titles" android:layout_weight="1"
android:layout_width="0px" android:layout_height="match_parent" />
<FrameLayout android:id="@+id/details" android:layout_weight="1"
android:layout_width="0px" android:layout_height="match_parent"
/>
</LinearLayout>
使用这种布局,系统会在 Activity 加载布局后立即实例化 TitlesFragment(列出播放标题),而 FrameLayout(用于显示播放摘要的片段所在的位置)会占用屏幕右侧的空间,但起初仍然是空的。正如您将在下面看到的,直到用户从列表中选择了一个项目,一个片段才被放置到 FrameLayout 中。
但是,并非所有屏幕配置都足够宽,可以并排显示播放列表和摘要。因此,上面的布局仅用于横向屏幕配置,将其保存在 res/layout-land/fragment_layout.xml 中。
因此,当屏幕为纵向时,系统会应用以下布局,该布局保存在 res/layout/fragment_layout.xml 中:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android1="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment class="com.example.android.apis.app.FragmentLayout$TitlesFragment"
android:id="@+id/titles"
android:layout_width="match_parent" android:layout_height="match_parent" />
<ListView
android1:id="@+id/listView1"
android1:layout_width="match_parent"
android1:layout_height="wrap_content" >
</ListView>
我有这个运行时异常:
08-04 11:59:52.127: E/AndroidRuntime(1124): FATAL EXCEPTION: main
08-04 11:59:52.127: E/AndroidRuntime(1124): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.list_fragment/com.example.list_fragment.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
08-04 11:59:52.127: E/AndroidRuntime(1124): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
08-04 11:59:52.127: E/AndroidRuntime(1124): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
08-04 11:59:52.127: E/AndroidRuntime(1124): at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-04 11:59:52.127: E/AndroidRuntime(1124): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
08-04 11:59:52.127: E/AndroidRuntime(1124): at android.os.Handler.dispatchMessage(Handler.java:99)
08-04 11:59:52.127: E/AndroidRuntime(1124): at android.os.Looper.loop(Looper.java:137)
08-04 11:59:52.127: E/AndroidRuntime(1124): at android.app.ActivityThread.main(ActivityThread.java:5039)
08-04 11:59:52.127: E/AndroidRuntime(1124): at java.lang.reflect.Method.invokeNative(Native Method)
08-04 11:59:52.127: E/AndroidRuntime(1124): at java.lang.reflect.Method.invoke(Method.java:511)
08-04 11:59:52.127: E/AndroidRuntime(1124): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)