2012-11-26 49 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"/>