2011-11-08 105 views
3

我試圖讓我的腦袋周圍的碎片爲了讓我的應用準備好ICS。基本片段佈局的困難

我有以下文件只是得到最基本的片段應用程序,你可以有。啓動時應該有這個:一個片段佈局,文本視圖爲「片段1」,另一個片段佈局爲「片段2」。

我的包的名字是com.mwerner.fragments

我的文件有:

  • FragmentsActivity.java
  • ExamplesFragment.java
  • ExamplesFragment2.java
  • examples_fragment.xml
  • examples_fragment2.xml
  • main.xml中

爲FragmentsActivity.java的代碼是:

package com.mwerner.fragments; 

import android.app.Activity; 
import android.os.Bundle; 

public class FragmentsActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

ExamplesFragment.java

package com.mwerner.fragments; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class ExamplesFragment extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.examples_fragment, container, false); 
    } 
} 

ExamplesFragment2.java

package com.mwerner.fragments; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class ExamplesFragment2 extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.examples_fragment2, container, false); 
    } 
} 

的examples_fragment.xml文件只需要一個線性佈局extview在它... 下面是main.xml中的代碼:

<?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" > 
<fragment 
     class="com.mwerner.fragments$ExamplesFragment" 
     android:id="@+id/list" 
     android:layout_weight="1" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     /> 

<fragment 
     class="com.mwerner.fragments$ExamplesFragment2" 
     android:id="@+id/viewer" 
     android:layout_weight="2" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" /> 


</LinearLayout> 

上啓動該應用程序崩潰,並顯示錯誤

11-07 18:12:12.519: E/AndroidRuntime(696): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mwerner.fragments/com.mwerner.fragments.FragmentsActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 

你能告訴我這裏有什麼問題?我幾乎從谷歌開發者頁面複製/粘貼代碼片段。

+0

你解決了這個問題嗎?我注意到你正在輸入錯誤的'Fragment'。而不是'android.support.v4.app.Fragment',你應該使用'android.app.Fragment'。 – adneal

+0

正確,你應該導入android.app.Fragment; – AshesToAshes

回答

5

您在佈局xml中錯誤地定義了碎片路徑。糾正類的屬性。試試這個:

<?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" > 
<fragment 
     class="com.mwerner.fragments.ExamplesFragment" 
     android:id="@+id/list" 
     android:layout_weight="1" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     /> 

<fragment 
     class="com.mwerner.fragments.ExamplesFragment2" 
     android:id="@+id/viewer" 
     android:layout_weight="2" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" /> 


</LinearLayout> 
+0

我仍然得到相同的錯誤: 11-07 18:39:35.524:E/AndroidRuntime(790):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.mwerner.fragments/com.mwerner.fragments。 FragmentsActivity}:android.view.InflateException:二進制XML文件行#6:錯誤膨脹類片段 – Killerpixler

+0

你能幫助我嗎?我試過你的xml文件,但仍然得到上面提到的錯誤(啓動時崩潰)。任何幫助將非常感謝 – Killerpixler

+0

有同樣的問題。我的問題也是類屬性 - 我在我的佈局中定義的命名空間不正確(與我的Fragment類中的命名空間不匹配)。 – AshesToAshes

0

嘗試延長FragmentActivity

public class FragmentsActivity extends FragmentActivity { 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
     } 
    } 
+0

不知道哪個版本的評論是反對的,但是當我這樣做時,我仍然得到膨脹異常。你應該保持Activity來擴展Dialog。 – AshesToAshes

0

當我使用我發生同樣的錯誤片段寫我的第一個程序。而不是擴展「活動」在您的啓動器活動中擴展「FragmentActivity」。

+0

不知道哪個版本的評論是反對的,但是當我這樣做時,我仍然得到膨脹異常。你應該保持Activity來擴展Dialog。 – AshesToAshes