2012-11-26 48 views
0

我有一个非常基本的应用程序,我试图在MainActivity上创建ListFragment。Android的片段错误

我不断收到以下运行时错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.proto1.listfragment/com.proto1.listfragment.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment

我有两个班。

首先是MainActivity.java如下所示:

包com.proto1.listfragment;

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.view.Menu; 

public class MainActivity extends FragmentActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 
} 

第二个是与所述listfragment SectionsList类,如下所示:

package com.proto1.listfragment; 

import android.os.Bundle; 
import android.support.v4.app.ListFragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 

    public class SectionsList extends ListFragment { 

     //Create an array to hold the sections 
     String sections [] = new String []{ 
      "Starters", "Mains", "Sides", "Desserts", "Drinks" 
     }; 

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

      //Create array adapter to store list of menu sections 
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(inflater.getContext(), android.R.layout.simple_list_item_1,sections); 

      //Set list adapter of fragment 
      setListAdapter(adapter); 

      return super.onCreateView(inflater, container, savedInstanceState);  
     } 

    } 

我然后有称为activity_main一个XML布局文件,如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:orientation = "horizontal" 
android:layout_height="fill_parent" > 

<fragment 
    android:name = "com.proto1.listfragment.MainActivity" 
    android:id="@+id/sectionFrag" 
    android:layout_width = "wrap_content" 
    android:layout_height = "fill_parent"/> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" 
    tools:context=".MainActivity" /> 

我无法明白为什么会产生这个错误。有人可以澄清这个问题吗?非常感谢!

回答

3

FragmentActivity本身并不是一个片段。但是,它是一种轻松与碎片交互的方式。您在xml中调用的片段应该是SectionList。

+0

,我想我明白你的意思!我现在就试试。 – Javacadabra

+0

非常感谢,它完美的工作! – Javacadabra

+0

另外我还没有看看它,但在主题上如果我要动态地添加一个新的片段显示菜单落在单击部分将通过包括一个fragmentManager到代码中完成? – Javacadabra

2

编辑以下到您的activity_main xml文件

<fragment 
android:name = "com.proto1.listfragment.SectionList" 
android:id="@+id/sectionFrag" 
android:layout_width = "wrap_content" 
android:layout_height = "fill_parent"/>